【コマンド詳細】usermodコマンドの使い方とオプションまとめ

  • URLをコピーしました!
目次

usermod コマンドとは?

usermod コマンドは、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 が補助グループ sudousers に所属。
確認コマンド:
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

実用例

ユーザーの完全なプロファイル変更

  1. ユーザーのホームディレクトリとコメントを更新:
sudo usermod -m -d /new/home -c "Updated User" testuser
  1. ログインシェルを /bin/zsh に変更:
sudo usermod -s /bin/zsh testuser
  1. グループ設定を変更:
sudo usermod -g developers -G sudo,docker testuser
  • 結果
    • ユーザー testuser の属性が一括変更される。
確認コマンド:
id testuser
sudo cat /etc/passwd | grep testuser

注意点

  • ログイン中のユーザーを変更する場合、変更が適用されない可能性があります。
  • ユーザーの UID やグループを変更すると、ファイルやディレクトリの所有権を手動で修正する必要があります。
  • システムアカウント(UID < 1000)の変更には特に注意が必要です。

まとめ

usermod コマンドは、Linux システム管理におけるユーザーアカウントの柔軟な変更を可能にします。
ログインシェルやグループの管理、アカウントの有効期限設定など、用途に応じたさまざまなオプションがあるため、
これらの機能を活用し、システム運用を効率化しましょう。

    目次