usermod
コマンドは、Linux システム上で既存ユーザーの属性(所属グループ、ログインシェル、ホームディレクトリ、コメント情報など)を変更するためのコマンドです。
実務では、ユーザーを新しいグループに追加したり、ログインシェルを変更する際に利用されます。
構文(Syntax)
usermod [オプション] USER
主なオプション一覧
オプション | 説明 | 使用例 |
---|---|---|
-aG GROUP | ユーザーを補助グループに追加(-a を付け忘れると上書きされる) | sudo usermod -aG developers alice |
-g GROUP | プライマリグループを変更 | sudo usermod -g staff alice |
-d DIR | ホームディレクトリを変更(既存内容は移動されない) | sudo usermod -d /home/newalice alice |
-m | -d と併用してホームディレクトリの内容を移動 | sudo usermod -d /home/newalice -m alice |
-s SHELL | ログインシェルを変更 | sudo usermod -s /bin/zsh alice |
-c COMMENT | コメント(GECOS フィールド)を変更 | sudo usermod -c "Alice Dev Account" alice |
-l NEWNAME | ユーザー名を変更 | sudo usermod -l alice2 alice |
-L | アカウントをロック(ログイン不可にする) | sudo usermod -L alice |
-U | アカウントのロックを解除 | sudo usermod -U alice |
-e DATE | アカウントの有効期限を設定(YYYY-MM-DD形式) | sudo usermod -e 2025-12-31 alice |
実行例
ユーザーを補助グループに追加
sudo usermod -aG developers alice
出力なし → alice
が developers
グループに追加される
プライマリグループを変更
sudo usermod -g staff alice
出力なし → alice
のプライマリグループが staff
になる
ホームディレクトリを変更(内容も移動)
sudo usermod -d /home/newalice -m alice
出力なし → /home/alice
の内容が /home/newalice
に移動される
ログインシェルを変更
sudo usermod -s /bin/zsh alice
出力なし → alice
のログインシェルが /bin/zsh
に変更される
エラー例(sudoなしで実行)
usermod -aG developers alice
出力例:
usermod: Permission denied.
usermod: cannot lock /etc/passwd; try again later.
関連コマンド
useradd
: 新しいユーザーを作成userdel
: ユーザーを削除passwd
: ユーザーのパスワードを変更groups
: ユーザーが所属するグループを確認
備考
- 設定は
/etc/passwd
,/etc/group
,/etc/<shadow
> に反映されます。 - 特に
-aG
と-G
の違い に注意:-G
だけだと既存の補助グループが全て上書きされます。 - 重要なアカウント(例: root)の設定を変更するとログイン不能になる危険があるため注意が必要です。
- 管理者権限(
sudo
)が必須です。
参考
- manページ: man7.org usermod(8)
- Shadow-utils プロジェクト: https://github.com/shadow-maint/shadow
コメント