kazmax - Linux で自宅サーバー

Linux ユーザ情報の変更 - usermod

ユーザー情報を変更するには、usermod コマンドを使用します。

ユーザーのホームディレクトリ、グループ、期限等の変更が可能です。グループの変更や、ホームディレクトリの変更の仕方、コマンド、オプション、書式と、使用例をここで説明します。

また、usermodコマンドは、 /etc/passwd/etc/shadow/etc/groupファイルを変更します。

Last Update : 2007年04月25日

Linux ユーザ情報の変更 - usermod 項目

  1. 「 usermod 」の書式とオプション
  2. 「 usermod 」の使用例

1. 「 usermod 」の書式とオプション

書式

usermod [ -c comment ] [ -d home_dir [ -m ] ]
        [ -e expire_date ] [ -f inactive_time ] 
        [ -g initial_group ] [ -G group [ ,... ] ]
        [ -l login_name ] [ -p passwd ] 
        [ -s shell ] [ -u uid [ -o ] ] [ -L | -U ] login

login は、ユーザーアカウント名。
[ ] は省略可。最低一つは指定しないと何も変わらないけど。実際に実行する場合は、[ ] はいらない。

オプション

-c comment login のコメントを変更する。
-d home_dir login のホームディレクトリをhome_dirに変更する。また、後ろに-mをつけると、現在のホームディレクトリの中身が新しいホームディレクトリに移動される。また、そのディレクトリが存在しない場合は新たに作られる。
-e expire_date アカウントが使用不能になる日付。日付はYYYY-MM-DDで指定する。
-f inactive_days パスワードの使用期限が切れてからアカウントが永久に使用不能になるまでの日数。 0とすると、パスワードの期限が切れると同時にこのアカウントは使用不可能になる。-1を指定すると無期限に。
-g initial_group デフォルトのグループをinitial_groupに変更する
-G group,[...] アカウントが属する、サブグループを追加。グループはコンマ区切り。元々入っていたグループをここで指定しないと、そのグループから削除されます。
-l login_name ユーザのログイン名をloginからlogin_nameに変更する。パスワードとかもそのまま。ホームディレクトリの名前くらいはを変えてあげましょう。
-s shell ログインシェルをshellに変更する。
-u uid ユーザのID番号を指定したものへ変更する。
-L ユーザのパスワードをロックする。ロックされたアカウントは、パスワード認証でのログインができなくなります。
-U ユーザのパスワードをアンロックする。-L の反対です。

memo

-L オプションを使うと、/etc/passwdか、/etc/shadow のパスワードの項目の先頭に、「 ! 」が追加されます。

直接「 ! 」を追加してもロックできるし、逆に「 ! 」を削除すると、アンロックできます。 なお、/etc/default/useraddファイルでも確認できます。

[root@localhost ~]# grep hogehoge /etc/shadow
hogehoge:$1$AEgraoiuK+hOIwiOIhefaZT2cmtsb5KoS/:13616:0:99999:7:::

[root@localhost ~]# vi /etc/shadow
hogehoge:!$1$AEgraoiuK+hOIwiOIhefaZT2cmtsb5KoS/:13616:0:99999:7:::
 ↑パスワード認証できなくなる。

memo

-d home_dir -m オプションを使って、新規にディレクトリを作成して、ホームディレクトリを設定する場合について。

例えば、/home/users/hogehogeというディレクトリを作成する場合は、/home/usersまでは、作成されていないとダメ。

2. 「 usermod 」の使用例

ユーザー「 hogehoge 」を以下の様に変更する。

  • デフォルトグループを、「 hoge_group 」に。
  • サブグループ「 group1 」「 group2 」「 group3 」に所属させる。
  • ホームディレクトリを「 /home/users/hogehoge 」に変更(ディレクトリ新規作成)。

↓現在のアカウントの情報確認

[root@kazmax ~]# id -a hogehoge
uid=514(hogehoge) gid=514(hogehoge) 所属グループ=514(hogehoge)

[root@kazmax ~]# grep hogehoge /etc/passwd
hogehoge:x:514:514::/home/hogehoge:/bin/bash

[root@kazmax ~]# ls -d /home/users/hogehoge
ls: /home/users/hogehoge: そのようなファイルやディレクトリはありません

↓コマンド実行
[root@localhost ~]# usermod -g hoge_group -G group1,group2,group3 \
-d /home/users/hogehoge -m hogehoge

[root@kazmax ~]# id -a hogehoge
uid=514(hogehoge) gid=518(hoge_group) \
所属グループ=518(hoge_group),515(group1),516(group2),517(group3)

[root@kazmax ~]# grep hogehoge /etc/passwd
hogehoge:x:514:518::/home/users/hogehoge:/bin/bash
Linux 基礎知識 関連記事