usermodコマンドはuseraddコマンド等で追加したユーザアカウントの設定を修正できます。usermodコマンドはユーザ・オプションの両方を指定して利用するコマンドになります。
そのオプションはuseraddコマンドのオプションとほとんど同じになり、usermodコマンドを利用するのに管理者権限が必要なのも同様です。
ユーザ名を変更
(-lオプション)
-lオプションはユーザ名のみを変更できるオプションになります。ユーザ名以外のホームディレクトリなどの設定はそのままになります。
コマンド例と実行結果
1 2 3 4 5 6 |
$ cat /etc/passwd | grep 'testuser' testuser:x:1001:1008::/home/testuser: $ $ sudo usermod -l testuser2 testuser $ cat /etc/passwd | grep 'testuser' testuser2:x:1001:1008::/home/testuser: |
passwdのファイルについては以下のコマンドで確認できます。
man 5 passwd
ホームディレクトリを移動
-dオプションを用いると現在のホームディレクトリを別のディレクトリに変更できます。
さらに、-dオプションで指定するディレクトリが存在しないときに、-mオプションを用いるとその新しいホームディレクトリに現在のホームディレクトリの内容を移動できます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ ls /home/ /home/testuser/ /home/: testuser ubuntu /home/testuser/: examples.desktop testuser_file.txt $ $ sudo usermod -d /home/testuser2 -m testuser $ ls /home/ /home/testuser2 /home/: testuser2 ubuntu /home/testuser2: examples.desktop testuser_file.txt |
補助グループを追加
-Gオプションを用いると補助グループを変更できます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 |
$ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser),1000(ubuntu) $ $ sudo usermod -G testuser2 testuser $ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser),1002(testuser2) $ sudo usermod -G testuser3 testuser $ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser),1003(testuser3) |
-Gオプションとともに-aオプションを用いると補助グループを追加できます。
コマンド例と実行結果
1 2 3 4 5 6 7 8 9 10 |
$ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser) $ $ sudo usermod -aG testuser2 testuser $ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser),1002(testuser2) $ $ sudo usermod -aG testuser3 testuser $ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser),1002(testuser2),1003(testuser3) |
また、全ての補助グループを削除する方法として、-Gオプションに空文字列を渡すことで全ての補助グループを削除できます。
コマンド例と実行結果
1 2 3 4 5 6 |
$ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser),1002(testuser2),1003(testuser3) $ $ sudo usermod -G '' testuser $ id -a testuser uid=1001(testuser) gid=1008(testuser) groups=1008(testuser) |
アカウントの有効期限を設定
(-eオプション)
-eオプションを用いることでユーザアカウントの有効期限を設定できます。
有効期限はYY-MM-DDの形式で指定できます。
-eオプションで-1を指定すると有効期限をなしにできます。また、単純な数字の場合は、0のときに1970年1月1日を基準として、その数字の日数分足された数字に変更されます。これは例えば、アカウントの有効期限を過去のものにして、アカウントをロックしたい場合に利用できます。
コマンド例と実行結果
1 2 3 4 |
$ sudo usermod -e 2020-01-01 testuser $ $ sudo chage -l testuser | grep Account Account expires : 1月 01, 2020 |
また、chageコマンドの-lオプションは自分自身のアカウントの場合は、管理者権限を必要としません。
その他のオプション
usermodコマンドには他にも以下のようなオプションがあります。
その他のオプション
オプション | ロングオプション | 機能 |
-c string | --comment | コメントとして名前情報を変更 |
-f num | --inactive | パスワードが期限切れして、何日後にアカウントをロックするかを変更 |
-u num | --uid | ユーザIDを変更 |
-g num | --gid | グループIDを変更 |
-s shell | --shell | シェルを変更。例:/bin/sh |
-L | --lock | ユーザのパスワードをロック |
-U | --unlock | ユーザのパスワードをアンロック |