【Linuxコマンド】gpasswd コマンドの使い方とよく使うオプション

概要

 
gpasswd コマンドは、グループのパスワードやメンバー、グループ管理者を設定・変更するためのコマンドです。
/etc/group および /etc/gshadow を操作し、グループへのユーザ追加・削除グループ管理者の設定グループパスワードの設定・ロック などを行います。
 

実務では、特定グループにユーザを追加/削除する用途で使うことが多く、手動で /etc/group を編集するより安全な方法として利用されます。
グループに対するアクセス権管理や、プロジェクト単位のグループ運用で登場するコマンドです。
 

フォーマット

 

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

 

オプションを付けずに gpasswd グループ名 と実行すると、そのグループのパスワードを対話的に設定します。
通常の運用では、-a / -d / -M / -A などのオプションを使ってメンバーや管理者を追加・削除する使い方が中心になります。

 

よく使うコマンド例

 

・ユーザを既存グループに追加する。

sudo gpasswd -a sooota developers

-a ユーザ名 は、指定したユーザをグループのメンバーとして追加するオプションです。
この例では、ユーザ soootadevelopers グループに追加しています。
/etc/group を直接編集する代わりに、gpasswd 経由で安全にメンバーを操作できます。

 

・ユーザをグループから削除する。

sudo gpasswd -d sooota developers

-d ユーザ名 は、指定したユーザをグループメンバーから削除します。
プロジェクトから外れたメンバーや退職ユーザのグループ所属を整理する場合に使います。
なお、そのユーザのprimary グループは別途 usermod などで変更する必要があります。

 

・グループのメンバー一覧を一気に置き換える。

sudo gpasswd -M "alice,bob,charlie" developers

-M で指定したユーザ一覧(カンマ区切り)を、そのグループのメンバーとして設定し直す例です。
既存メンバーはこの指定で上書きされるため、「意図したメンバーだけになる」ことを確認してから実行する必要があります。

 

・グループ管理者(group admin)を設定する。

sudo gpasswd -A "alice,bob" developers

-A はグループ管理者(admin)となるユーザ一覧を設定します。
グループ管理者は、そのグループに対するメンバー管理などを行える特別な権限を持ちます。
こちらも -M 同様、指定したメンバーで上書きされる点に注意してください。

 

・グループのパスワードを設定する(あまり使われない運用)。

sudo gpasswd developers

オプションなしで実行すると、developers グループのパスワードを対話的に設定します。
UNIX グループパスワード機能自体、実務ではほとんど使われないため、
通常はメンバー管理のみで済ませるケースが多いです。

 

・グループのパスワードを削除(無効化)する。

sudo gpasswd -r developers

-r はグループのパスワードを削除します。
グループパスワードを使わない運用に切り替える場合や、誤って設定したパスワードを無効化したい場合に利用します。

 

・グループをロックして、新たなメンバー追加やパスワード使用を制限する。

sudo gpasswd -R developers

-R はグループをロックし、グループパスワードを使った追加参加などを禁止します。
グループメンバー構成を固定したい場合や、一時的に変更を禁止したい場合に利用できます。

 

・グループのメンバー構成を確認する。

getent group developers

gpasswd の実行前後で、getent group グループ名 を使うと、メンバーが想定どおり変更されているか確認できます。
特に -M-A で上書きする場合は、実行前後の確認を強くおすすめします。

 

実務でのよくある使いどころ

 

・プロジェクト単位のグループ管理
開発プロジェクトごとにグループを用意し、gpasswd -a / -d でメンバーの出入りを管理します。
ディレクトリの所有グループをプロジェクトグループにしておけば、所属メンバーだけが読み書きできるように運用できます。
 

・sudoers と組み合わせた権限管理
%developers ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd のように、
sudoers 設定でグループベースの権限制御をしている場合、gpasswd -a / -d がそのまま権限付与・剥奪になります。
 

・手作業で /etc/group を編集する代わりに使う
直接 /etc/group を編集すると、人為的なタイプミスでフォーマットが崩れるリスクがあります。
gpasswd を経由してメンバー編集を行うことで、フォーマットを崩さず安全にグループ管理ができます。
 

・一時的な検証用グループのメンバー管理
検証用や PoC 用のグループに対して、実験中だけ特定メンバーを追加しておき、
検証終了後に gpasswd -d で整理するといった運用にも向いています。
 

ユーザの所属グループを管理するには、useradd コマンドusermod コマンド と合わせて押さえておくと、
ユーザ・グループ設計全体が理解しやすくなります。

 

オプション(よく使うオプションのみ)

 

short optionlong optiondescription
-a--add指定したユーザをグループのメンバーとして追加する
-d--delete指定したユーザをグループのメンバーから削除する
-M--membersカンマ区切りで指定したユーザ一覧をグループメンバーとして設定する(既存メンバーを上書き)
-A--administratorsカンマ区切りで指定したユーザ一覧をグループ管理者として設定する(既存管理者を上書き)
-r--remove-passwordグループパスワードを削除(無効化)する
-R--restrictグループへの参加を制限し、グループパスワードによる参加を無効化する
-l--lockグループのパスワードをロックする
-U--unlockロックされたグループパスワードを解除する
--helpgpasswd コマンドの使い方(ヘルプ)を表示して終了する
--versiongpasswd コマンドのバージョン情報を表示して終了する
 

ここでは、gpasswd コマンドでよく使う代表的なオプションを TablePress の表にまとめています。
グループパスワード関連の機能は実務では使われないことも多く、ユーザの追加・削除・管理者設定が主な用途となります。
詳細は各ディストリビューションの man gpasswd もあわせて参照してください。

 

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
ブログランキング・にほんブログ村へ
にほんブログ村