usermodはコンピュータに登録されているユーザーの設定を変更するコマンドだ。
このページでは、ユーザーの基本的な設定の変更方法を解説する。
目次
- 1 コマンドの基本
- 2 usermodコマンドのオプションたち
- 2.1 コマンドの一覧
- 2.2 -cオプション(--comment COMMENTオプション):コメントを変更する
- 2.3 -gオプション(--gid GROUPオプション):主グループまたはグループ番号(GID)を変更する
- 2.4 -Gオプション(--groups GROUPSオプション):補助グループを指定する
- 2.5 -aオプション(--appendオプション):副グループを追加する
- 2.6 -u オプション(--uid UIDオプション):ユーザー番号を変更する
- 2.7 -o オプション(--non-unique)オプション:既存のユーザー番号(UID)と同じ番号にユーザーを変更する
- 2.8 -dオプション(オプション--home-dir HOME_DIRオプション):ユーザーの作業用ディレクトリを変更する
- 2.9 -mオプション(--move-homeオプション):ホームディレクトリの内容を移動する
- 2.10 -eオプション(--expiredate EXPIRE_DATEオプション):ユーザーの有効期限を変更する
- 2.11 -fオプション(--inactive INACTIVEオプション):パスワードの有効期限が切れた後のユーザーのアカウントの有効期限を変更する
- 2.12 -Lオプション(--lockオプション):ユーザーをロックする
- 2.13 -Uオプション(--unlockオプション):ユーザーのロックを解除する
- 2.14 -lオプション(---login NEW_LOGINオプション):ログイン名を変更する
- 2.15 -pオプション(--password PASSWORDオプション):暗号化したパスワードでパスワードを変更する
- 2.16 -sオプション(--shell SHELLオプション):ログインシェルを変更する
- 3 usermod関連コマンド
コマンドの基本
ユーザーの変更は、一般ユーザーでは操作できない。
スーパーユーザーなど、管理者権限を持つアカウントで操作する。
また、どの設定を変更するか指定する必要があるので、いずれかのオプションは必ず設定する。
usermodコマンドのオプションたち
コマンドの一覧
後から詳細をご紹介するが、まずは一覧で見てみよう。
オプション-c(オプション--comment COMMENT)
コメントを変更する
オプション-g(オプション--gid GROUP)
主グループまたはグループ番号(GID)を変更する
オプション-G(オプション--groups GROUPS)
副グループを変更する
オプション-a(オプション--append)
副グループを追加する
オプション-u(オプション--uid UID)
ユーザー IDを変更する
オプション-o(オプション--non-unique)
既存のユーザー番号(UID)と同じ番号にユーザーを変更する
オプション-d(オプション--home-dir HOME_DIR)
ユーザーの作業用ディレクトリを変更する
オプション-m(オプション--create-home)
ホームディレクトリの内容を移動する
オプション-e(オプション--expiredate EXPIRE_DATE)
ユーザーの有効期限を変更する
オプション-f(オプション--inactive INACTIVE)
パスワードの有効期限が切れた後のユーザーのアカウントの有効期限を変更する
オプション-L(オプション--lock)
ユーザーをロックする
オプション-U(オプション--unlock)
ユーザーのロックを解除する
オプション-l(オプション--login NEW_LOGIN)
ログイン名を変更する
オプション-p(オプション--password PASSWORD)
暗号化したパスワードに変更する
オプション-s(オプション--shell SHELL)
ログインシェルを変更する
詳細を説明する。
-cオプション(--comment COMMENTオプション):コメントを変更する
/etc/passwdファイルに記録されるユーザー一覧表に記録するユーザーごとのコメントを変更する。
コメントは空白など特殊文字が含まれる場合は、"で囲む。
書式は次の通りだ。
$ usermod -c コメント ユーザー名
ユーザー Billを「Inspector」というコメントに変更する場合は次のコマンドだ。
$ usermod -c Inspector Bill
ユーザーBillのコメントが「Inspector」に変更された。
grepコマンドで/etc/passwdファイルを確認してみよう。
$ grep Bill /etc/passwd
ユーザーBillのコメントが「Inspector」に変更されている。
-gオプション(--gid GROUPオプション):主グループまたはグループ番号(GID)を変更する
主グループを任意のグループに変更する。
書式は次のとおりだ。
$ usermod -g グループ名またはグループ番号(GID) ユーザー名
ユーザーCarryの主所属グループを「Creative」に変更する場合は、次のコマンドだ。
$ usermod -g Creative Carry
ユーザーCarryの主所属グループが「Creative」に変更された。
idコマンドで確認してみよう。
$ id Carry
ユーザーCarryの主所属グループが「Creative」に変更されている。
-Gオプション(--groups GROUPSオプション):補助グループを指定する
補助グループをカンマ区切りのリストで指定するオプションだ。
補助グループは、一つのユーザーに複数登録してよい。
複数登録する場合は「,」で区切る。
書式は次のとおりだ。
$ usermod -G グループ名またはグループ番号(GID) ユーザー名
ユーザーFernandezの副所属グループに「Creative」とグループ番号(GID)が「1050」の2つに変更する場合は、次のコマンドだ。
$ usermod -G Creative,1050 Fernandez
ユーザーFernandezの副所属グループに「Creative」とグループ番号(GID)が「1050」の2つに変更された。
idコマンドで確認してみよう。
$ id Fernandez
ユーザーCarryの副所属グループに「Moderator」が「Creative」とグループ番号(GID)が「1050」に変更されている。
-Gオプションは副グループが指定したものに書き換わるので、操作には注意が必要だ。
例えば、今変更したユーザーFernandezの副所属グループに「Moderator」を追加したいときは、次のように現在の副グループも列挙しなければならない。
$ usermod -G Creative,1050, Moderator Fernandez
列挙しない場合は、Fernandezの副グループはModeratorのみとなってしまう。
副グループが多くなると、非常に面倒だ。
そこで、次に紹介する-aオプションを併用する。
-aオプション(--appendオプション):副グループを追加する
補助グループをカンマ区切りのリストで追加するオプションだ。
必ず-Gオプションと併用する。
複数一度に追加する場合は「,」で区切る。
書式は次のとおりだ。
$ usermod -aG グループ名またはグループ番号(GID) ユーザー名
ユーザーFernandezの副所属グループに「Designer」を追加する場合は、次のコマンドだ。
$ usermod -aG Designer Fernandez
ユーザーFernandezの副所属グループに「Designer」が追加された。
idコマンドで確認してみよう。
$ id Fernandez
ユーザーFernandezの副所属グループに「Designer」が追加されている。
副グループを削除する場合
-Gオプション、-aオプションを利用しても、副グループの一部を削除することはできない。
もしも複数登録している副グループのうちの1つを削除する場合は、次のような作業手順が考えられる。
idコマンドで副グループ一覧を取得する
副グループ一覧をクリップボードなどにコピーする。
削除したい副グループを除し、「,」で繋ぐ。
-Gオプションで削除した副グループを省いた一覧を副グループとして設定する。
このように副グループの削除は少々面倒な作業になる。
-u オプション(--uid UIDオプション):ユーザー番号を変更する
-uオプションはユーザー番号(UID)を変更する。
書式は次のとおりだ。
$ usermod -u ユーザー番号(UID) ユーザー名
ユーザーIrisをユーザー番号(UID)2054番に変更するには次のコマンドだ。
$ usermod -u 2054 Iris
ユーザーIrisがユーザー番号(UID)2054番に変更された。
idコマンドで確認してみよう。
$ id Iris
ユーザーIrisがユーザー番号(UID)2054番に変更されている。
-o オプション(--non-unique)オプション:既存のユーザー番号(UID)と同じ番号にユーザーを変更する
通常、同じユーザー番号(UID)は1番号に1ユーザーが組み付いて管理されている。
Kimのユーザー番号(UID)をJimと同じ2025番のUIDにしてみよう。
$ usermod -u 2025 Kim
エラーが表示され、変更されない。
もしも、同じユーザー番号で違うユーザーを管理したいときは次のコマンドだ。
$ usermod -u ユーザー番号(UID) -o ユーザー名
先ほどと同じく、Kimのユーザー番号(UID)をJimと同じ2025番のUIDに変更したい時は、次のコマンドだ。
$ usermod -u 2025 -o Kim
Kimが2025番のUIDで作成された。
idコマンドで確認してみよう。
$ id Kim
Kimのユーザー番号(UID)をJimと同じ2025番のUIDに変更されている。
-dオプション(オプション--home-dir HOME_DIRオプション):ユーザーの作業用ディレクトリを変更する
ユーザーが所有者として扱える作業用のディレクトリを変更する。
書式は次のとおりだ。
$ usermod -d ディレクトリ ユーザー名
ユーザーNancyの作業ディレクトリを/home/publicに変更するには次のコマンドだ。
$ usermod -d /home/public Nancy
ユーザーNancyの作業ディレクトリが/home/publicに変更された。
grepコマンドで/etc/passwdファイルを確認してみよう。
$ grep Nancy /etc/passwd
ユーザーNancyの作業ディレクトリが/home/publicに変更されている。
-mオプション(--move-homeオプション):ホームディレクトリの内容を移動する
-dオプションと併用し、今まで使っていたホームディレクトリの内容を-dオプションで指定したディレクトリへ移動する。
従来使っていたディレクトリ内容をそのまま使う時に使うオプションで、書式は次のとおりだ。
$ usermod -d ディレクトリ -m ユーザー名
まず、現状のユーザーSakuraの作業ディレクトリ/home/Sakuraの内容を確認しておこう。
$ ls /home/Sakura
Sakuraの作業ディレクトリの内容が表示された。
ユーザーSakuraの作業ディレクトリを、/home/New_Sakuraに変更し、変更したディレクトリへ従来使っていたディレクトリ内容を移動するには次のコマンドだ。
$ usermod -d /home/New_Sakura -m Sakura
ユーザーSakuraの作業ディレクトリが、/home/New_Sakuraに変更され、変更したディレクトリへ従来使っていたディレクトリ内容を移動した。
grepコマンドで/etc/passwdファイルを確認してみよう。
$ grep Sakura /etc/passwd
ユーザーSakuraの作業ディレクトリが、/home/New_Sakuraに変更されている。
-eオプション(--expiredate EXPIRE_DATEオプション):ユーザーの有効期限を変更する
ユーザーの有効期限を変更する。
有効期限は4桁の西暦の年-2桁の月-2桁の日の形式で指定する。
有効期限の切れたユーザーでも、-eオプションで有効期限を再設定すれば、有効期限が切れる前の状態で利用を再開できる。
書式は次のとおりだ。
$ usermod -e 日付 ユーザー名
ユーザーFijiを2020年8月23日までの有効期限で登録する場合は次のコマンドだ。
$ usermod -e 2020-08-23 Fuji
ユーザーFujiが2020年8月23日までの有効期限で登録された。
-fオプション(--inactive INACTIVEオプション):パスワードの有効期限が切れた後のユーザーのアカウントの有効期限を変更する
パスワードの有効期限が切れた後、ユーザーのアカウントが利用できなくなるまでの期間を日数で指定する。
chageコマンドでユーザーに指定されたパスワード有効期限が切れた後、アカウントが利用できなくなるまでの有効期限を日数で指定する。
有効期限の切れた場合、有効期限が切れただけでユーザーは存在し続け、ホームディレクトリも存在しているので、-eオプションで有効期限を再設定することで再利用できる。
その場合、パスワードの有効期限は解除されている。
書式は次のとおりだ。
$ usermod -f 日数 ユーザー名
ユーザーHenryをパスワードの有効期限が切れた後、5日間過ぎてから無効にする設定で登録する場合は次のコマンドだ。
$ usermod -f 5 Henry
ユーザーHenryがパスワードの有効期限が切れた後、5日間過ぎてから無効にする設定で登録された。
-Lオプション(--lockオプション):ユーザーをロックする
ユーザーをロックし、使用できなくする。
書式は次のとおりだ。
$ usermod -L ユーザー名
ユーザーBadをロックするには次のコマンドだ。
$ usermod -L Bad
ユーザーBadがロックされた。
-Uオプション(--unlockオプション):ユーザーのロックを解除する
ロックし、使用できなくなったユーザーのロックを解除する。
書式は次のとおりだ。
$ usermod -U ユーザー名
ロックを解除するユーザーにパスワードが設定されていない場合は「ユーザーのパスワードをアンロックするとパスワードのないアカウントができます。」という警告が表示される。
ロックを解除する前にユーザーにパスワードを設定しよう。
ユーザーBadのロックを解除するには次のコマンドだ。
$ usermod -U Bad
ユーザーBadのロックが解除された。
-lオプション(---login NEW_LOGINオプション):ログイン名を変更する
ユーザーのログインする時の名称を変更する。
つまりユーザー名を変更することになる。
変更後は、変更前のユーザー名ではログインできなくなる。
操作は、影響が出ないか確認し、慎重に行う必要がある。
書式は次のとおりだ。
$ usermod -l 変更後ユーザー名 変更前ユーザー名
ユーザーKuroをAkaに変更するには、次のコマンドだ。
$ usermod -l Kuro Aka
ユーザーKuroはユーザーAkaに変更された。
idコマンドでKuroの情報を確認してみよう。
$ id Kuro
ユーザーKuroの情報はない。ユーザーKuroは存在しなくなった。
今度はidコマンドでAkaの情報を確認してみよう。
$ id Aka
ユーザーAkaの情報はある。グループがKuroになっている。もともとユーザー名がKuroだった痕跡だ。
-pオプション(--password PASSWORDオプション):暗号化したパスワードでパスワードを変更する
-pオプションでパスワードを変更できる。
しかし、入力するパスワードはcrypt関数で暗号化されたものが必要なので、設定は困難だ。
ユーザーにパスワードを設定するには、passwdコマンドでパスワードを設定した方が簡単で一般的だ。
参考までに、オプションの使い方を紹介する。
-pオプションを使った場合の書式は次のとおりだ。
$ usermod -p 暗号化後パスワード ユーザー名
ユーザーRickを暗号化パスワード「$cf1」で登録する場合は次のコマンドだ。
$ usermod -p $cf1 Rick
ユーザーRickのパスワードが暗号化パスワード「$cf1」に変更された。
-sオプション(--shell SHELLオプション):ログインシェルを変更する
ログインシェルを変更する。
書式は次のとおりだ。
$ usermod -s ログインシェル ユーザー名
ユーザーLindaをログインシェル「/bin/bash」に変更する場合は次のコマンドだ。
$ usermod -s /bin/bash Linda
ユーザーLindaのログインシェルが「/bin/bash」に変更された。
grepコマンドで/etc/passwdファイルを確認してみよう。
$ grep Linda /etc/passwd
ユーザーLindaのログインシェルが「/bin/bash」に変更されている。
usermod関連コマンド
最後にusermodコマンドに関連して、基本的なグループ関連、及びアクセス権限関連のコマンドも紹介しておく
useraddコマンド
ユーザーの設定を追加する。
userdelコマンド
ユーザーを削除する。
groupaddコマンド
グループを追加する。
groupmodコマンド
グループの設定を変更する。
groupdelコマンド
グループを削除する。
chownコマンド
ディレクトリやファイルの所有者を変更する。
chgrpコマンド
ディレクトリやファイルにアクセスできるグループを変更する。
chmodコマンド
ディレクトリやファイルのアクセス権を変更する。
passwdコマンド
ユーザーのパスワードを設定、変更する。
idコマンド
登録しているユーザーのユーザー番号(UID)、主所属グループ、副所属グループを確認する。
まとめ
今回は、usermodコマンドを使ったLinuxを利用するユーザーの追加の方法を解説した。
ユーザーの追加はLinux管理者としては、常時発生、メンテナンスを行う作業だ。
ぜひ理解し、活用して欲しい。
ユーザーKuroをAkaに変更するには、次のコマンドだ。
$ usermod -l Kuro Aka
上記のパラメータ Kuro と Aka は逆なのでは?
また、rootでログインしているのならプロンプトは'$'よりも'#'の方が良い。