連載
» 2016年12月14日 05時00分 UPDATE

Linux基本コマンドTips(73):【 usermod 】コマンド――ユーザーアカウントの情報を変更する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「usermod」コマンドです。

[西村めぐみ,@IT ]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ユーザーアカウントの情報を変更する「usermod」コマンドです。

usermodコマンドとは?

 「usermod」は、ユーザーのホームディレクトリやグループ、パスワードなどを変更するためのコマンドです。ユーザーのロック/アンロックや有効日も設定できます。実行には「rootユーザー(スーパーユーザー)」の権限が必要です。


usermodコマンドの書式

usermod [オプション] ユーザー名




usermodコマンドの主なオプション

 usermodコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-L --lock ユーザーをロックする(ログインできなくなる)
-U --unlock ユーザーのロックを解除する
-e 日付 --expiredate 日付 アカウントが使用不能になる日付を指定する(「YYYY-MM-DD」形式で指定)
-f 日数 --inactive 日数 パスワードの使用期限が切れてから使えなくなるまでの日数を指定する
-l 新ログイン名 --login 新ログイン名 ログイン名を変更する(ホームディレクトリも併せて変更するには「-d」オプションで指定)
-d パス --home パス ユーザーのホームディレクトリを変更する(現ディレクトリの内容を移動したい場合は「-m」オプションを同時に指定)
-m --move-home (「-d」オプション指定時)現ホームディレクトリの内容を新たな場所に移動する
-R ディレクトリ --root ディレクトリ 「chroot」するディレクトリを指定する
-p パスワード --password パスワード 新たなパスワードを指定する(パスワードは暗号化されたものを指定)
-s シェル --shell シェル ユーザーのシェルを変更する(指定を空白にした場合はデフォルトのシェル)
-g グループ --gid グループ プライマリーグループを変更する
-G グループ --groups グループ セカンダリーグループを変更する(複数ある場合は「,」で区切って指定)。変更ではなく追加したい場合は「-a」オプションを同時に指定する
-a --append 「-G」オプションで指定したグループをセカンダリーグループに追加する
-u UID --uid UID ユーザーIDを変更する
-o --non-unique (「-U」オプション指定時)一意でないユーザー(UIDの重なるユーザー)を許可する
-c コメント --comment コメント 「/etc/passwd」のコメント欄(「GECOS」フィールド。ユーザーの所属やフルネームなどを記述する)を設定する


ユーザーの所属グループを変更する

 「usermod -g 新グループ」でプライマリーグループを、「usermod -G 新グループ」でセカンダリーグループを変更できます。「-G」オプションで複数のグループを指定する場合は、「,」(カンマ)で区切って指定します。

 「-G」オプションでグループの変更ではなく、グループを追加する場合は「-a」オプションを併用します。なお、グループの追加は「gpasswd -a」コマンドでも可能です(本連載第72回「gpasswdコマンド――ユーザーが所属するグループを管理する」参照)。

コマンド実行例

usermod -G testgroup study

(ユーザー「study」のセカンダリーグループに「testgroup」を追加する(root権限が必要))(画面1の赤枠部分

usermod -G testgroup,sudoers study

(ユーザー「study」のセカンダリーグループを「testusers」と「sudoers」に変更する(root権限が必要))(画面1の赤青部分


画面1 画面1 ユーザー「study」のセカンダリーグループに「testgroup」を追加後(赤枠部分)、「sudoers」と「testusers」に変更した(青枠部分)

参考情報:ユーザーとグループの関係

 Linuxでは、ユーザーは複数のグループに所属できます。1つ目のグループを「プライマリーグループ」、2つ目以降を「セカンダリーグループ」と呼びます。プライマリーグループは必須のグループで、例えば、ファイルを新規作成した場合、「ファイルの所有者」は作成したユーザー、「ファイルのグループ」は作成したユーザーのプライマリーグループとなります。

 CentOSやUbuntuなどの場合、ユーザーのプライマリーグループとして、ユーザー名と同じ名前のグループが設定されます。この管理方式を「ユーザープライベートグループ(UPG)」と呼びます。



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

 ユーザーのログイン名は、「usermod -l 新ログイン名 旧ログイン名」で変更することができます。ホームディレクトリや所属するグループは変わらないので、それぞれを指定する必要があります。なお、ログイン中のユーザーは変更できないので、いったんログアウトしてからusermodコマンドを実行してください。

 ホームディレクトリは「-d ディレクトリ」で指定します。ディレクトリはフルパスで指定します。古いディレクトリの内容を新しいホームディレクトリに移動する場合は、「-m」オプションも併せて指定します。

 プライマリーグループは「-g グループ名」で、セカンダリーグループは「-G グループ名」で変更しますが、UPG(ユーザープライベートグループ)を使用している場合は「groupmod」コマンドで「groupmod -n 新グループ名 旧グループ名」と指定して新しい名前に変更します。

コマンド実行例

usermod -l 新ユーザー名 -d /home/新ユーザー名 -m 旧ユーザー名

(新しいログイン名に変更し、ホームディレクトリも移動する)(画面2

groupmod -n 新グループ名 旧グループ名


画面2 画面2 グループ「penguin」を「tux」に変更し、ユーザー「penguin」のログイン名とホームディレクトリを「tux」に変更した


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。