gpasswd コマンドは、グループのパスワードやメンバー、グループ管理者を設定・変更するためのコマンドです。
/etc/group および /etc/gshadow を操作し、グループへのユーザ追加・削除 や グループ管理者の設定、グループパスワードの設定・ロック などを行います。
実務では、特定グループにユーザを追加/削除する用途で使うことが多く、手動で /etc/group を編集するより安全な方法として利用されます。
グループに対するアクセス権管理や、プロジェクト単位のグループ運用で登場するコマンドです。
gpasswd [オプション] グループ名
オプションを付けずに gpasswd グループ名 と実行すると、そのグループのパスワードを対話的に設定します。
通常の運用では、-a / -d / -M / -A などのオプションを使ってメンバーや管理者を追加・削除する使い方が中心になります。
・ユーザを既存グループに追加する。
sudo gpasswd -a sooota developers
-a ユーザ名 は、指定したユーザをグループのメンバーとして追加するオプションです。
この例では、ユーザ sooota を developers グループに追加しています。
/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 option | long option | description |
|---|---|---|
| -a | --add | 指定したユーザをグループのメンバーとして追加する |
| -d | --delete | 指定したユーザをグループのメンバーから削除する |
| -M | --members | カンマ区切りで指定したユーザ一覧をグループメンバーとして設定する(既存メンバーを上書き) |
| -A | --administrators | カンマ区切りで指定したユーザ一覧をグループ管理者として設定する(既存管理者を上書き) |
| -r | --remove-password | グループパスワードを削除(無効化)する |
| -R | --restrict | グループへの参加を制限し、グループパスワードによる参加を無効化する |
| -l | --lock | グループのパスワードをロックする |
| -U | --unlock | ロックされたグループパスワードを解除する |
| --help | gpasswd コマンドの使い方(ヘルプ)を表示して終了する | |
| --version | gpasswd コマンドのバージョン情報を表示して終了する |
ここでは、gpasswd コマンドでよく使う代表的なオプションを TablePress の表にまとめています。
グループパスワード関連の機能は実務では使われないことも多く、ユーザの追加・削除・管理者設定が主な用途となります。
詳細は各ディストリビューションの man gpasswd もあわせて参照してください。
新着情報
ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
![]()
にほんブログ村