概要
/etc/group および /etc/gshadow ファイルを操作し、グループの管理を行うためのコマンドです。
コマンド名に「passwd」と付いていますが、単にグループパスワード(現在はあまり使われない機能)を設定するだけでなく、グループへのユーザー追加・削除や、グループ管理者の指名といった、グループ運用の核心となる機能を提供します。特に一般ユーザーにグループ管理権限を委譲する場合に必須となります。
仕様(引数・オプション)
構文
gpasswd [オプション] [グループ名]
主なオプション
| オプション | 説明 |
| -a [ユーザー名] | 指定したユーザーをグループに追加します(Add)。 |
| -d [ユーザー名] | 指定したユーザーをグループから削除します(Delete)。 |
| -M [ユーザーリスト] | グループのメンバーを指定したユーザー一覧で上書きします(Members)。カンマ区切りで複数指定可能です。 |
| -A [ユーザーリスト] | グループの管理者(Administrator)を指定します。管理者はメンバーの追加・削除権限を持ちます。 |
| -r | グループのパスワードを削除します(Remove password)。 |
| -R | グループへのアクセスを制限します(パスワードを知っていても newgrp 不可)。 |
基本の使い方
グループを作成し、初期メンバーを追加する
新規グループ blue_team を作成し、ユーザー mori をメンバーとして追加します。
BASH
# グループの作成
sudo groupadd blue_team
# グループ情報の確認(作成直後はメンバーなし)
grep blue_team /etc/group
grep blue_team /etc/gshadow
# ユーザー mori を blue_team に追加
sudo gpasswd -a mori blue_team
# 追加後の確認
grep blue_team /etc/group
実行結果例
# 追加前
blue_team:x:1005:
# 追加後
blue_team:x:1005:mori
実践コマンド
メンバーを一括で設定(上書き)する
-M オプションを使用すると、指定したユーザーリストで現在のメンバー情報を完全に置き換えます。既存のメンバーはリストに含まれていなければ削除されます。
BASH
# blue_team のメンバーを mori と mori_sub の2名だけに設定する
sudo gpasswd -M mori,mori_sub blue_team
# 結果確認
grep blue_team /etc/group
実行結果例
blue_team:x:1005:mori,mori_sub
グループ管理者を指名する
通常、グループのメンバー追加はroot権限が必要ですが、-A オプションで「グループ管理者」に指名されたユーザーは、sudoなしでそのグループの gpasswd -a などを実行できるようになります。
BASH
# mori_sub を blue_team の管理者に設定
sudo gpasswd -A mori_sub blue_team
# 管理者情報の確認(/etc/gshadow の3フィールド目)
sudo grep blue_team /etc/gshadow
実行結果例
blue_team:!::mori_sub:mori,mori_sub
※ 左から「グループ名」「パスワード(暗号化)」「管理者リスト」「メンバーリスト」です。
カスタムポイント
- グループパスワードの設定オプションなしで
gpasswd [グループ名]を実行すると、そのグループにパスワードを設定できます。これにより、グループに所属していないユーザーでもnewgrpコマンドでパスワードを入力することで、一時的にそのグループの権限を得ることができます(セキュリティリスクが高いため、現在はあまり推奨されません)。
注意点
- usermod -G との違い
usermod -Gは「ユーザー側」の属性を書き換えるため、-aを付け忘れると所属している他のグループ設定が消えてしまいます。一方、gpasswd -aは「グループ側」にユーザーを追記する動作のため、他のグループ所属情報に影響を与えず安全にメンバー追加ができます。 - 即時反映についてグループへの追加や削除は、対象ユーザーが次回ログインするまで反映されません。ログイン中のユーザーに即座に反映させるには、一度ログアウトするか
newgrpコマンドを実行してもらう必要があります。
まとめ
gpasswdコマンドは、グループ運用の柔軟性を高めるためのツールです。
単なるメンバー追加には usermod -aG も使われますが、誤操作のリスクが低い gpasswd -a の方が運用上安全です。また、-A オプションによる権限委譲は、システム管理者の負担を減らし、各チームリーダーにメンバー管理を任せる際に非常に有効な機能です。
