目次
usermod コマンドとは?
usermod
コマンドは、Linux システムで既存のユーザーアカウントを変更・管理するためのコマンドです。
このコマンドを使用すると、ユーザーの属性(例えば、グループ、ログインシェル、ホームディレクトリなど)を変更できます。システム管理者にとってユーザー管理の効率化に欠かせないツールです。
Linuxユーザー・グループ管理基本コマンド徹底ガイド
Linuxでは、システム上のすべての操作は「ユーザー」と「グループ」によって制御されています。これは、誰が何を操作できるかを管理する重要な仕組みです。 本記事では…
基本構文
usermod [オプション] ユーザー名
- ユーザー名: 属性を変更する対象のユーザー。
- オプション: 設定を変更するための指定。
注意: usermod
コマンドを実行するには管理者権限(sudo
)が必要です。
主なオプション一覧
オプション | 説明 |
---|---|
-c | ユーザーのコメント(通常はフルネーム)を変更します。 |
-d | ホームディレクトリを変更します。 |
-m | ホームディレクトリを新しい場所に移動します(-d と併用)。 |
-s | ユーザーのログインシェルを変更します。 |
-g | ユーザーの初期グループを変更します。 |
-G | ユーザーが所属する補助グループを変更します(既存グループは上書き)。 |
-a | 補助グループを追加する際に使用(-G と併用)。 |
-l | ユーザー名を変更します。 |
-u | ユーザー ID (UID) を変更します。 |
-e | アカウントの有効期限を設定します(形式: YYYY-MM-DD)。 |
-L | ユーザーアカウントをロックします。 |
-U | ユーザーアカウントのロックを解除します。 |
各オプションの実行例と結果
1. ユーザーのコメントを変更する(-c
オプション)
sudo usermod -c "New Comment" testuser
- 結果:
- ユーザー
testuser
のコメントが “New Comment” に変更される。
- ユーザー
確認コマンド:
cat /etc/passwd | grep testuser
出力例:
testuser:x:1001:1001:New Comment:/home/testuser:/bin/bash
2. ホームディレクトリを変更する(-d
オプション)
sudo usermod -d /new/home testuser
- 結果:
- ユーザー
testuser
のホームディレクトリが/new/home
に変更される。 - ディレクトリの内容は移動されない。
- ユーザー
確認コマンド:
cat /etc/passwd | grep testuser
出力例:
testuser:x:1001:1001::/new/home:/bin/bash
3. ホームディレクトリを移動する(-m
と -d
オプション)
sudo usermod -m -d /new/home testuser
- 結果:
- ホームディレクトリの内容が
/new/home
に移動される。
- ホームディレクトリの内容が
確認コマンド:
ls -ld /new/home
出力例:
drwxr-xr-x 2 testuser testuser 4096 Dec 21 12:00 /new/home
4. ログインシェルを変更する(-s
オプション)
sudo usermod -s /bin/zsh testuser
- 結果:
- ユーザー
testuser
のログインシェルが/bin/zsh
に変更される。
- ユーザー
確認コマンド:
cat /etc/passwd | grep testuser
出力例:
testuser:x:1001:1001::/home/testuser:/bin/zsh
5. 初期グループを変更する(-g
オプション)
sudo groupadd newgroup
sudo usermod -g newgroup testuser
- 結果:
- ユーザー
testuser
の初期グループがnewgroup
に変更される。
- ユーザー
確認コマンド:
id testuser
出力例:
uid=1001(testuser) gid=1002(newgroup) groups=1002(newgroup)
6. 補助グループを設定する(-G
オプション)
sudo usermod -G sudo,users testuser
- 結果:
- ユーザー
testuser
が補助グループsudo
とusers
に所属。
- ユーザー
確認コマンド:
id testuser
出力例:
uid=1001(testuser) gid=1001(testgroup) groups=1001(testgroup),27(sudo),100(users)
7. 補助グループを追加する(-aG
オプション)
sudo usermod -aG docker testuser
- 結果:
- ユーザー
testuser
が既存のグループに加えてdocker
グループに追加される。
- ユーザー
確認コマンド:
id testuser
出力例:
uid=1001(testuser) gid=1001(testgroup) groups=1001(testgroup),27(sudo),100(users),998(docker)
8. ユーザー名を変更する(-l
オプション)
sudo usermod -l newuser testuser
- 結果:
- ユーザー名が
testuser
からnewuser
に変更される。
- ユーザー名が
確認コマンド:
cat /etc/passwd | grep newuser
出力例:
newuser:x:1001:1001::/home/testuser:/bin/bash
9. アカウントの有効期限を設定する(-e
オプション)
sudo usermod -e 2024-12-31 testuser
- 結果:
- ユーザー
testuser
のアカウントが 2024年12月31日 に期限切れとなる。
- ユーザー
確認コマンド:
sudo chage -l testuser
出力例:
Account expires : Dec 31, 2024
10. アカウントをロック/ロック解除する(-L
と -U
オプション)
- アカウントをロック:
sudo usermod -L testuser
確認コマンド:
sudo passwd -S testuser
出力例:
testuser L
- アカウントのロックを解除:
sudo usermod -U testuser
確認コマンド:
sudo passwd -S testuser
出力例:
testuser P
実用例
ユーザーの完全なプロファイル変更
- ユーザーのホームディレクトリとコメントを更新:
sudo usermod -m -d /new/home -c "Updated User" testuser
- ログインシェルを
/bin/zsh
に変更:
sudo usermod -s /bin/zsh testuser
- グループ設定を変更:
sudo usermod -g developers -G sudo,docker testuser
- 結果:
- ユーザー
testuser
の属性が一括変更される。
- ユーザー
確認コマンド:
id testuser
sudo cat /etc/passwd | grep testuser
注意点
- ログイン中のユーザーを変更する場合、変更が適用されない可能性があります。
- ユーザーの UID やグループを変更すると、ファイルやディレクトリの所有権を手動で修正する必要があります。
- システムアカウント(UID < 1000)の変更には特に注意が必要です。
まとめ
usermod
コマンドは、Linux システム管理におけるユーザーアカウントの柔軟な変更を可能にします。
ログインシェルやグループの管理、アカウントの有効期限設定など、用途に応じたさまざまなオプションがあるため、
これらの機能を活用し、システム運用を効率化しましょう。
【コマンド詳細】useraddコマンドの使い方とオプションまとめ
useradd コマンドとは? useradd コマンドは、Linux システムで新しいユーザーアカウントを作成するための基本コマンドです。このコマンドを使用して、ユーザー名、ホー…
【コマンド詳細】groupaddコマンドの使い方とオプションまとめ
groupadd コマンドとは? groupadd コマンドは、Linux システムで新しいグループを作成するための基本的なコマンドです。システム管理者がユーザーを管理しやすくするた…
【コマンド詳細】groupmodコマンドの使い方とオプションまとめ
groupmod コマンドとは? groupmod コマンドは、既存のグループの属性を変更するために使用されるLinuxのシステム管理コマンドです。グループ名の変更やグループ ID (GI…