【 usermod 】コマンド――ユーザーアカウントの情報を変更する:Linux基本コマンドTips(73)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「usermod」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ユーザーアカウントの情報を変更する「usermod」コマンドです。
usermodコマンドとは?
「usermod」は、ユーザーのホームディレクトリやグループ、パスワードなどを変更するためのコマンドです。ユーザーのロック/アンロックや有効日も設定できます。実行には「rootユーザー(スーパーユーザー)」の権限が必要です。
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の赤青部分)
参考情報:ユーザーとグループの関係
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 新グループ名 旧グループ名
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.