Linux ユーザ情報の変更 - usermod
ユーザー情報を変更するには、usermod コマンドを使用します。
ユーザーのホームディレクトリ、グループ、期限等の変更が可能です。グループの変更や、ホームディレクトリの変更の仕方、コマンド、オプション、書式と、使用例をここで説明します。
また、usermodコマンドは、 /etc/passwd、/etc/shadow、/etc/groupファイルを変更します。
Last Update : 2007年04月25日
Linux ユーザ情報の変更 - 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