usermodコマンドについて詳しくまとめました 【Linuxコマンド集】

usermodコマンド
  • このエントリーをはてなブックマークに追加
  • Pocket

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

usermodコマンド

ユーザーBillのコメントが「Inspector」に変更された。

grepコマンドで/etc/passwdファイルを確認してみよう。

$ grep Bill /etc/passwd

usermodコマンド

ユーザーBillのコメントが「Inspector」に変更されている。

-gオプション(--gid GROUPオプション):主グループまたはグループ番号(GID)を変更する

主グループを任意のグループに変更する。

書式は次のとおりだ。

$ usermod -g グループ名またはグループ番号(GID) ユーザー名

ユーザーCarryの主所属グループを「Creative」に変更する場合は、次のコマンドだ。

$ usermod -g Creative Carry

usermodコマンド

ユーザーCarryの主所属グループが「Creative」に変更された。

idコマンドで確認してみよう。

$ id Carry

usermodコマンド

ユーザーCarryの主所属グループが「Creative」に変更されている。

-Gオプション(--groups GROUPSオプション):補助グループを指定する

補助グループをカンマ区切りのリストで指定するオプションだ。

補助グループは、一つのユーザーに複数登録してよい。

複数登録する場合は「,」で区切る。

書式は次のとおりだ。

$ usermod -G グループ名またはグループ番号(GID) ユーザー名

ユーザーFernandezの副所属グループに「Creative」とグループ番号(GID)が「1050」の2つに変更する場合は、次のコマンドだ。

$ usermod -G Creative,1050 Fernandez

usermodコマンド

ユーザーFernandezの副所属グループに「Creative」とグループ番号(GID)が「1050」の2つに変更された。

idコマンドで確認してみよう。

$ id Fernandez

usermodコマンド

ユーザー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

usermodコマンド

ユーザーFernandezの副所属グループに「Designer」が追加された。

idコマンドで確認してみよう。

$ id Fernandez

usermodコマンド

ユーザーFernandezの副所属グループに「Designer」が追加されている。

副グループを削除する場合

-Gオプション、-aオプションを利用しても、副グループの一部を削除することはできない。

もしも複数登録している副グループのうちの1つを削除する場合は、次のような作業手順が考えられる。

idコマンドで副グループ一覧を取得する

副グループ一覧をクリップボードなどにコピーする。

削除したい副グループを除し、「,」で繋ぐ。

-Gオプションで削除した副グループを省いた一覧を副グループとして設定する。

このように副グループの削除は少々面倒な作業になる。

-u オプション(--uid UIDオプション):ユーザー番号を変更する

-uオプションはユーザー番号(UID)を変更する。

書式は次のとおりだ。

$ usermod -u ユーザー番号(UID) ユーザー名

ユーザーIrisをユーザー番号(UID)2054番に変更するには次のコマンドだ。

$ usermod -u 2054 Iris

usermodコマンド

ユーザーIrisがユーザー番号(UID)2054番に変更された。

idコマンドで確認してみよう。

$ id Iris

usermodコマンド

ユーザーIrisがユーザー番号(UID)2054番に変更されている。

-o オプション(--non-unique)オプション:既存のユーザー番号(UID)と同じ番号にユーザーを変更する

通常、同じユーザー番号(UID)は1番号に1ユーザーが組み付いて管理されている。

Kimのユーザー番号(UID)をJimと同じ2025番のUIDにしてみよう。

$ usermod -u 2025 Kim

usermodコマンド

エラーが表示され、変更されない。

もしも、同じユーザー番号で違うユーザーを管理したいときは次のコマンドだ。

$ usermod -u ユーザー番号(UID) -o ユーザー名

先ほどと同じく、Kimのユーザー番号(UID)をJimと同じ2025番のUIDに変更したい時は、次のコマンドだ。

$ usermod -u 2025 -o Kim

usermodコマンド

Kimが2025番のUIDで作成された。

idコマンドで確認してみよう。

$ id Kim

usermodコマンド

Kimのユーザー番号(UID)をJimと同じ2025番のUIDに変更されている。

-dオプション(オプション--home-dir HOME_DIRオプション):ユーザーの作業用ディレクトリを変更する

ユーザーが所有者として扱える作業用のディレクトリを変更する。

書式は次のとおりだ。

$ usermod -d ディレクトリ ユーザー名

ユーザーNancyの作業ディレクトリを/home/publicに変更するには次のコマンドだ。

$ usermod -d /home/public Nancy

usermodコマンド

ユーザーNancyの作業ディレクトリが/home/publicに変更された。

grepコマンドで/etc/passwdファイルを確認してみよう。

$ grep Nancy /etc/passwd

usermodコマンド

ユーザーNancyの作業ディレクトリが/home/publicに変更されている。

-mオプション(--move-homeオプション):ホームディレクトリの内容を移動する

-dオプションと併用し、今まで使っていたホームディレクトリの内容を-dオプションで指定したディレクトリへ移動する。

従来使っていたディレクトリ内容をそのまま使う時に使うオプションで、書式は次のとおりだ。

$ usermod -d ディレクトリ -m ユーザー名

まず、現状のユーザーSakuraの作業ディレクトリ/home/Sakuraの内容を確認しておこう。

$ ls /home/Sakura

usermodコマンド

Sakuraの作業ディレクトリの内容が表示された。

ユーザーSakuraの作業ディレクトリを、/home/New_Sakuraに変更し、変更したディレクトリへ従来使っていたディレクトリ内容を移動するには次のコマンドだ。

$ usermod -d /home/New_Sakura -m Sakura

usermodコマンド

ユーザーSakuraの作業ディレクトリが、/home/New_Sakuraに変更され、変更したディレクトリへ従来使っていたディレクトリ内容を移動した。

grepコマンドで/etc/passwdファイルを確認してみよう。

$ grep Sakura /etc/passwd

usermodコマンド

ユーザーSakuraの作業ディレクトリが、/home/New_Sakuraに変更されている。

-eオプション(--expiredate EXPIRE_DATEオプション):ユーザーの有効期限を変更する

ユーザーの有効期限を変更する。

有効期限は4桁の西暦の年-2桁の月-2桁の日の形式で指定する。

有効期限の切れたユーザーでも、-eオプションで有効期限を再設定すれば、有効期限が切れる前の状態で利用を再開できる。

書式は次のとおりだ。

$ usermod -e 日付 ユーザー名

ユーザーFijiを2020年8月23日までの有効期限で登録する場合は次のコマンドだ。

$ usermod -e 2020-08-23 Fuji

usermodコマンド

ユーザーFujiが2020年8月23日までの有効期限で登録された。

-fオプション(--inactive INACTIVEオプション):パスワードの有効期限が切れた後のユーザーのアカウントの有効期限を変更する

パスワードの有効期限が切れた後、ユーザーのアカウントが利用できなくなるまでの期間を日数で指定する。

chageコマンドでユーザーに指定されたパスワード有効期限が切れた後、アカウントが利用できなくなるまでの有効期限を日数で指定する。

有効期限の切れた場合、有効期限が切れただけでユーザーは存在し続け、ホームディレクトリも存在しているので、-eオプションで有効期限を再設定することで再利用できる。

その場合、パスワードの有効期限は解除されている。

書式は次のとおりだ。

$ usermod -f 日数 ユーザー名

ユーザーHenryをパスワードの有効期限が切れた後、5日間過ぎてから無効にする設定で登録する場合は次のコマンドだ。

$ usermod -f 5 Henry

usermodコマンド

ユーザーHenryがパスワードの有効期限が切れた後、5日間過ぎてから無効にする設定で登録された。

-Lオプション(--lockオプション):ユーザーをロックする

ユーザーをロックし、使用できなくする。

書式は次のとおりだ。

$ usermod -L ユーザー名

ユーザーBadをロックするには次のコマンドだ。

$ usermod -L Bad

usermodコマンド

ユーザーBadがロックされた。

-Uオプション(--unlockオプション):ユーザーのロックを解除する

ロックし、使用できなくなったユーザーのロックを解除する。

書式は次のとおりだ。

$ usermod -U ユーザー名

ロックを解除するユーザーにパスワードが設定されていない場合は「ユーザーのパスワードをアンロックするとパスワードのないアカウントができます。」という警告が表示される。

ロックを解除する前にユーザーにパスワードを設定しよう。

ユーザーBadのロックを解除するには次のコマンドだ。

$ usermod -U Bad

usermodコマンド

ユーザーBadのロックが解除された。

-lオプション(---login NEW_LOGINオプション):ログイン名を変更する

ユーザーのログインする時の名称を変更する。

つまりユーザー名を変更することになる。

変更後は、変更前のユーザー名ではログインできなくなる。

操作は、影響が出ないか確認し、慎重に行う必要がある。

書式は次のとおりだ。

$ usermod -l 変更後ユーザー名 変更前ユーザー名

ユーザーKuroをAkaに変更するには、次のコマンドだ。

$ usermod -l Kuro Aka

usermodコマンド

ユーザーKuroはユーザーAkaに変更された。

idコマンドでKuroの情報を確認してみよう。

$ id Kuro

usermodコマンド

ユーザーKuroの情報はない。ユーザーKuroは存在しなくなった。

今度はidコマンドでAkaの情報を確認してみよう。

$ id Aka

usermodコマンド

ユーザー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

usermodコマンド

ユーザーLindaのログインシェルが「/bin/bash」に変更された。

grepコマンドで/etc/passwdファイルを確認してみよう。

$ grep Linda /etc/passwd

usermodコマンド

ユーザーLindaのログインシェルが「/bin/bash」に変更されている。

usermod関連コマンド

最後にusermodコマンドに関連して、基本的なグループ関連、及びアクセス権限関連のコマンドも紹介しておく

useraddコマンド

ユーザーの設定を追加する。

userdelコマンド

ユーザーを削除する。

groupaddコマンド

グループを追加する。

groupmodコマンド

グループの設定を変更する。

groupdelコマンド

グループを削除する。

chownコマンド

ディレクトリやファイルの所有者を変更する。

chgrpコマンド

ディレクトリやファイルにアクセスできるグループを変更する。

chmodコマンド

ディレクトリやファイルのアクセス権を変更する。

passwdコマンド

ユーザーのパスワードを設定、変更する。

idコマンド

登録しているユーザーのユーザー番号(UID)、主所属グループ、副所属グループを確認する。

まとめ

今回は、usermodコマンドを使ったLinuxを利用するユーザーの追加の方法を解説した。

ユーザーの追加はLinux管理者としては、常時発生、メンテナンスを行う作業だ。

ぜひ理解し、活用して欲しい。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメント

コメントを残す

*