コマンドラインによるLinuxユーザーの管理:包括的なガイド

コマンドラインによるLinuxユーザーの管理:包括的なガイド

ユーザー管理は、Linuxシステム管理者にとって不可欠な要素です。単一のマシンを管理する場合でも、サーバーネットワークを管理する場合でも、ユーザーアカウントの秩序を維持することは、システム制御とセキュリティにとって極めて重要です。適切な管理を行うことで、アクセス権限は真に必要とするユーザーのみに、必要な期間のみ付与されます。無制限の権限は、機密データや重要なリソースの漏洩につながる可能性があります。この記事では、管理者がターミナルから直接ユーザーアカウントを作成、変更、削除できる、必須のコマンドラインツールについて詳しく解説します。

Linuxでユーザーを管理するための必須ファイル

Linuxは、重要なユーザー情報とグループ情報を特定のシステムファイルに保存します。これらのファイルには、アカウントの詳細、パスワードデータ、グループ権限などがカプセル化されており、ユーザー管理とアクセス制御の基盤となります。

ファイル/ディレクトリ 説明
/etc/passwd UID、GID、ホームディレクトリ、およびデフォルトシェルが含まれています。すべてのユーザーが読み取り可能ですが、rootユーザーまたはsudoユーザーのみが編集可能です。
/etc/group グループ名、GID、およびメンバーの一覧を表示します。これは、グループのメンバーシップと権限を管理するために不可欠です。
/etc/sudoers どのユーザー/グループがroot権限でコマンドを実行できるかを詳細に記述します。慎重な編集が必要です。
/etc/shadow パスワードのハッシュ値と有効期限情報を格納します。アクセスはrootユーザーのみに制限されています。
/etc/gshadow グループのパスワードの詳細と有効期限情報が含まれており、rootユーザーのみがアクセスできます。
/etc/skel 「.bashrc」や「.profile」などのファイルは、新しいユーザーのホームディレクトリに自動的にコピーされます。
/etc/login.defs パスワードの有効期限、有効期限切れ、および各種セキュリティポリシーの設定を構成します。

既存ユーザーの表示方法

Linuxシステム上の既存ユーザーを確認する簡単な方法は、ユーザーアカウントに関する重要な情報が格納されている「/etc/passwd」ファイルを調べることです。このファイルを表示するには、次のコマンドを実行します。

sudo cat /etc/passwd

ファイル内の各行は、固有のユーザーアカウントに対応しています。

ユーザー情報を表示

このidコマンドは、ユーザーが所属するすべてのグループUID、グループ、および情報を提供します。GID

id usernamegroups usernamegetent passwd username

あるいは、このgroupsコマンドはユーザーに関連付けられているグループのみを表示します。このgetentコマンドは、「/etc/passwd」、LDAP、またはその他の設定済みソースを含むシステムデータベースからアカウントの詳細を取得します。

既存ユーザー情報の表示

useraddコマンドを使用してユーザーを作成する

このuseraddコマンドはほとんどのディストリビューションで利用できる基本的なユーティリティですが、一般的に に比べて使い勝手が劣ると考えられていますadduser。違いはあるものの、どちらのコマンドも同様の機能を実行します。

コマンドの詳細についてはuseraddmanコマンドを使用するか、--help簡単なガイドを追記してください。

man useradd--help

Linux Useradd ヘルプ

ホームディレクトリとともに新しいユーザーを作成するには、次のコマンドを使用します。

sudo useradd --create-home

このオプションを省略すると--create-home、ユーザーアカウントに個人ディレクトリが作成されません。ユーザーを作成した後、grepコマンドを実行してユーザーの存在を確認してください。

grep /etc/passwd

ユーザーの作成と確認

adduserコマンドを使用してユーザーを作成する

とは異なりuseradd、このadduserコマンドは、パスワードやホームディレクトリの詳細などを入力する対話型のユーザー作成エクスペリエンスを提供するPerlスクリプトです。Red HatやCentOSなどの多くのディストリビューションでは、はadduserへのシンボリックリンクとして機能しますuseradd。ただし、Arch Linuxなどの他のシステムでは、別のパッケージにが含まれている場合がありますadduser

このコマンドを実行すると、通常はユーザーと同じ名前のグループが生成されます。このコマンドで作成されたユーザーのデフォルト設定は、useradd「/etc/default/useradd」ファイルで調整できます。このファイルでは、デフォルトのシェルやホームディレクトリなどの属性を事前に定義できます。

ユーザーのデフォルト設定

新しいユーザーを作成するには、次のコマンドを実行します。

sudo adduser testuser

パスワードの設定と確認、追加のユーザー情報の入力、およびアカウント作成の完了を求められます。

Adduserを使用してユーザーを作成する

ユーザーパスワードの更新

ユーザーアカウントが作成されたら、次のようなコマンドを使用してユーザーのパスワードを変更できますpasswd

sudo passwd

このコマンドを実行すると、新しいパスワードを入力して確認するように求められます。一般ユーザーは、コマンドを.なしで実行した場合にのみパスワードを変更できますsudo

更新パスワードを設定する

パスワードの複雑性要件はPAM(Pluggable Authentication Modules)によって強制され、Ubuntuシステムでは通常「/etc/pam.d/common-password」で設定できます。詳細については、pam-auth-updateマニュアルを参照してください。

Linux Pam 認証マネージャー

ユーザー管理にusermodコマンドを使用する

このusermodコマンドは、既存のユーザーアカウントの属性を変更するメカニズムを提供します。これには、ユーザーID、ログイン名、ホームディレクトリ、グループメンバーシップの更新が含まれます。たとえば、ユーザーのUIDを変更するには、次のようにします。

sudo usermod -u

UIDまたはGIDの変更は、システム全体のファイル所有権およびアクセス権限に影響を与える可能性があります。

ユーザーのホームディレクトリを変更するには、以下の方法を使用してください。

sudo usermod -d

さらに、以下のコマンドを使用してユーザーアカウントをロックまたはロック解除できます。

sudo usermod -L sudo usermod -U

最後に、以下のオプションでアカウントの有効期限を設定できます--expiredate

sudo usermod --expiredate

これらの調整により、アカウントを削除することなく、ユーザーのアクセス権限と属性を効果的に管理できます。

ユーザーをグループに統合する

グループ機能を使うと、複数のユーザー間で権限を共有できるため、ファイルの管理、サービスの実行、管理タスクの共同実行などに特に役立ちます。

ユーザーを特定のグループに統合するには、以下のコマンドをオプションとともに使用しusermodます。-a-G

sudo usermod -a -G

この-aフラグは、ユーザーを既存のグループに追加する上で非常に重要です。これを省略すると、現在のグループメンバーシップが上書きされる可能性があります。

ユーザーをグループに追加する

あるいは、このgpasswdコマンドはグループメンバーシップの管理も行うことができます。

sudo gpasswd -a username groupname

グループからユーザーを削除するには、以下を実行します。

sudo gpasswd -d username groupname

ユーザーアカウントの削除

ユーザーアカウントが不要になった場合は、以下のuserdelコマンドを使用して削除できます。

sudo userdel username

ユーザーを削除

このコマンドはユーザーアカウントを削除しますが、ユーザーのホームディレクトリは保持します。ホームディレクトリを含めて完全に削除するには、次のコマンドを使用してください。

sudo userdel -r username

userdelユーザーアカウントでアクティブなプロセスが実行されている場合、これは実行されないことに注意してください。

ユーザーログインアクティビティの追跡

ログインアクティビティの監視は、システム管理者が不正アクセス試行を特定し、認証の問題を解決するために不可欠です。UbuntuおよびDebianシステムでは、ログイン試行は「/var/log/auth.log」に記録されます。最新のエントリを確認するには、以下を使用します。

sudo tail /var/log/auth.log

ユーザーログを表示する

Red HatまたはCentOSシステムの場合、ログイン記録は「/var/log/secure」にあります。さらに、systemdを使用するシステムでは、認証ログを表示する別の方法が提供される場合があります。

sudo journalctl | grep ssh

この積極的なユーザーアカウント管理アプローチにより、システムが整理され、不正アクセスから保護されます。

出典と画像

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です