【 gpasswd 】コマンド――ユーザーが所属するグループを管理するLinux基本コマンドTips(72)

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

» 2016年12月12日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ユーザーの所属するグループ(group)の情報を管理する「gpasswd」コマンドです。

gpasswdコマンドとは?

 「gpasswd」は、ユーザーが所属するグループの情報を管理するためのコマンドです。所有グループを変更したり、グループに所属しているメンバーを表示したりすることができます。コマンドの実行や、設定変更には「rootユーザー(スーパーユーザー)」の権限が必要です。

 本連載第70回で紹介した「passwd」コマンドが「/etc/passwd」および「/etc/shadow」ファイル(ユーザーのパスワードを暗号化して格納しているファイル)を管理するのに対し、gpasswdは「/etc/group」および「/etc/gshadow」ファイルを管理します。


gpasswdコマンドの書式

gpasswd [オプション] グループ




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

 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


画面1 画面1 「gpasswd -a study sudoers」でユーザー「study」を「sudoers」グループのメンバーに追加し、「groups study」でstudyが所属するグループ情報を表示した

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

 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


画面2 画面2 ユーザー「study」を「sudoers」グループのメンバーから外した


グループのパスワードを設定する/削除する

 オプションなしで「gpasswd グループ名」と実行した場合は、「グループのパスワードを設定する」という動作になります。パスワードを使用したくない/変更したくない場合は、何も入力しないで[Enter]キーを押し、確認で再度入力するよう求められるので、もう一度[Enterキー]を押してください。

 グループにパスワードを設定すると、「newgrp」コマンドで一時的に新しいグループに“ログイン”できるようになります。例えば、「newgrp testgroup」で「testgroup」グループのパスワードを入力すると、プライマリーグループが「testgroup」グループになります(ログアウトすると「newgrp」コマンドの設定は解除されます)。

 グループのパスワードを削除するには、「gpasswd -r グループ名」と実行します。

コマンド実行例

gpasswd グループ名

(グループにパスワードを設定する)(画面3

gpasswd -r グループ名

(グループからパスワードを削除する)


画面3 画面3 「新規パスワード:」および「新規パスワード再入力:」で何も入力せずに[Enter]キーを押すと、パスワードを設定せずに終了できる


筆者紹介

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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