ユーザー管理は、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。違いはあるものの、どちらのコマンドも同様の機能を実行します。
コマンドの詳細についてはuseradd、manコマンドを使用するか、--help簡単なガイドを追記してください。
man useradd--help

ホームディレクトリとともに新しいユーザーを作成するには、次のコマンドを使用します。
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
パスワードの設定と確認、追加のユーザー情報の入力、およびアカウント作成の完了を求められます。

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

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

ユーザー管理に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
この積極的なユーザーアカウント管理アプローチにより、システムが整理され、不正アクセスから保護されます。
コメントを残す