本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「gpasswd」コマンドです。
本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ユーザーの所属するグループ(group)の情報を管理する「gpasswd」コマンドです。
「gpasswd」は、ユーザーが所属するグループの情報を管理するためのコマンドです。所有グループを変更したり、グループに所属しているメンバーを表示したりすることができます。コマンドの実行や、設定変更には「rootユーザー(スーパーユーザー)」の権限が必要です。
本連載第70回で紹介した「passwd」コマンドが「/etc/passwd」および「/etc/shadow」ファイル(ユーザーのパスワードを暗号化して格納しているファイル)を管理するのに対し、gpasswdは「/etc/group」および「/etc/gshadow」ファイルを管理します。
gpasswdコマンドの主なオプションは次の通りです。
短いオプション | 長いオプション | 意味 |
---|---|---|
-a ユーザー | --add ユーザー | ユーザーをグループに所属させる |
-d ユーザー | --delete ユーザー | ユーザーをグループのメンバーから外す |
-r | --delete-password | グループのパスワードを削除する |
-R | --restrict | グループへのアクセスをメンバーのみに制限する |
-A ユーザー | --administrators ユーザー | グループの管理者を設定する(ユーザーは複数指定可能) |
-M ユーザー | --members ユーザー | メンバーのリストを設定する(ユーザーは複数指定可能) |
【※】複数のオプションは同時に使用できません(「-A」と「-M」オプションの組み合わせのみ可能)
【※】オプションを指定しない場合はグループのパスワード設定([Enter]キー2回で終了)
ユーザーの現在の所属グループはそのままにして、新たに別のグループにも所属させたい場合には、「gpasswd -a ユーザー名 グループ名」と実行します。
例えば、「sudo」コマンド(本連載第68回)の実行が許可された「sudoers」グループがあり、ユーザー「study」を「sudoers」グループに入れたい場合は「gpasswd -a study sudoers」と指定します。
gpasswdコマンドは“グループの情報を管理するコマンド”なので、「-a」オプションは「グループにユーザーを追加する」という意味になります。また、「gpasswd -a study sudoers」であれば、「ユーザーstudyは今まで所属していたグループはそのままに、新たにsudoersグループにも所属させる」ということになります。
なお、gpasswdコマンドで指定できるのは、既存のグループのみです。新たにグループを作成し、そこにメンバーを追加したい場合は、「groupadd 新規グループ」コマンドで先にグループを作成してから、gpasswdコマンドを実行してください。
gpasswd -a ユーザー名 グループ名
(ユーザーをグループのメンバーに追加する(root権限が必要))
gpasswd -a study sudoers
(ユーザー「study」を「sudoers」グループのメンバーに追加する(root権限が必要))(画面1)
Linuxでは、ユーザーは複数のグループに所属できます。1つ目のグループを「プライマリーグループ」、2つ目以降を「セカンダリーグループ」と呼びます。プライマリーグループは必須のグループで、例えば、ファイルを新規作成した場合、「ファイルの所有者」は作成したユーザー、「ファイルのグループ」は作成したユーザーのプライマリーグループとなります。
CentOSやUbuntuなどの場合、ユーザーのプライマリーグループとして、ユーザー名と同じ名前のグループが設定されます。この管理方式を「ユーザープライベートグループ(UPG)」と呼びます。
ユーザーが所属するグループは「usermod」コマンドで変更できますが、所属グループを全て指定する必要があるのと、プライマリーグループの変更(「-g」オプション)とセカンダリーグループの変更(「-G」オプション)が似ているのでミスしやすいということがあります。
対して「gpasswd -a ユーザー名 グループ名」では、ユーザーのもともとのグループ情報は変更されないため、単純に「所属するグループを増やしたい」という場合は、gpasswdコマンドの方が簡単かつ安全に実行できます。
「gpasswd -d ユーザー名 グループ名」で、グループからユーザーを削除できます。例えば、ユーザー「study」を、「sudoers」グループのメンバーから外したい場合は、「gpasswd -d study sudoers」と指定します。
gpasswd -d ユーザー名 グループ名
(ユーザーをグループのメンバーから削除する(root権限が必要))
gpasswd -d study sudoers
(ユーザー「study」を「sudoers」グループのメンバーから外す(root権限が必要))(画面2)
オプションなしで「gpasswd グループ名」と実行した場合は、「グループのパスワードを設定する」という動作になります。パスワードを使用したくない/変更したくない場合は、何も入力しないで[Enter]キーを押し、確認で再度入力するよう求められるので、もう一度[Enterキー]を押してください。
グループにパスワードを設定すると、「newgrp」コマンドで一時的に新しいグループに“ログイン”できるようになります。例えば、「newgrp testgroup」で「testgroup」グループのパスワードを入力すると、プライマリーグループが「testgroup」グループになります(ログアウトすると「newgrp」コマンドの設定は解除されます)。
グループのパスワードを削除するには、「gpasswd -r グループ名」と実行します。
gpasswd グループ名
(グループにパスワードを設定する)(画面3)
gpasswd -r グループ名
(グループからパスワードを削除する)
PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.