groupdel コマンドは、既に作成されているグループ(/etc/group のエントリ)を削除するためのコマンドです。
不要になったアプリケーション用グループや、一時的に作成した検証用グループなどを削除する際に使用します。
ただし、まだユーザがそのグループを primary グループとして使用している場合は削除できない、などの制約があります。
また、groupdel はグループのエントリを削除するだけで、既存ファイルの所有グループや ACL までは自動で書き換えません。
実運用では、事前に影響範囲を確認してから実行することが重要です。
groupdel [オプション] グループ名
基本的には、削除したいグループ名をひとつ指定するだけで、/etc/group および関連するシステムファイルからグループが削除されます。
ただし、/etc/gshadow などのグループ関連ファイルも一緒に更新されるため、root 権限での実行が前提となります。
・単純にグループを削除する(最も基本的な使い方)。
sudo groupdel developers
developers という名前のグループを削除します。
このグループがいずれかのユーザの primary グループになっている場合は削除できず、エラーになります。
その場合は、先に usermod や userdel などでユーザ側の設定を変更してから再度実行します。
・アプリケーション用に作成していたグループを削除する。
sudo groupdel appgroup
アプリケーションのアンインストールやサービス撤去にあわせて、
そのアプリ専用に作っていたグループ(例:appgroup)を削除するときに使います。
削除前に、関連ディレクトリの所有グループや ACL 設定が残っていないか確認しておくと安心です。
・削除前に、グループに所属しているユーザを確認する。
getent group developers
groupdel を実行する前に、getent group でそのグループに所属しているユーザを確認しておきます。
メンバーが残っている場合は、gpasswd -d や usermod -G などでグループから外してから削除するのが安全です。
・削除したグループ ID を持つファイルが残っていないか確認する。
sudo find / -group developers -ls 2>/dev/null
groupdel はシステムからグループエントリを削除するだけで、
既存ファイルの所有グループは自動では変更されません。
削除したグループ ID を所有グループとして持つファイルが残っていないか、find -group で確認し、
必要に応じて chgrp などで所有グループを修正します。
・chroot 環境や別のルートディレクトリ配下の /etc/group からグループを削除する。
sudo groupdel --root /mnt/chroot webadmin
–root ディレクトリを指定すると、そのディレクトリをルートとして扱い、
その配下の /etc/group などに対して操作を行います。
chroot 環境や、別ディスク上に構築したシステムのグループ構成を調整したい場合に利用します。
・インストールイメージや検証用ルートディレクトリのグループを削除する。
sudo groupdel --prefix /mnt/target rootgroup
環境によっては、–prefix オプションで /etc などのベースディレクトリを切り替えられます。
パッケージング用のルートディレクトリやインストールイメージ内の /etc/group から、
不要なグループを削除するといった用途で使われることがあります(対応状況はディストリに依存します)。
・不要になったアプリケーション用グループの整理
検証用や一時的に立ち上げたアプリケーション/サービスを削除する際に、
あわせてグループも groupdel で整理しておくと、/etc/group の管理がスッキリします。
・UID/GID の整理・再割り当て前のクリーンアップ
複数台サーバ間で UID/GID を統一し直したい場合、
すでに使っていないグループを groupdel で事前に削除しておくことで、
GID の重複や混乱を減らすことができます。
・セキュリティポリシーに沿ったグループの棚卸し
「使われていないグループは定期的に削除する」といったポリシーがある環境では、
ログイン履歴や所有ファイルを確認しつつ、groupdel でグループを整理していく運用が行われることがあります。
・chroot やイメージ内のユーザ・グループ調整
新しいシステムイメージや chroot 環境を作成する際、
--root や --prefix を使って、その環境内のグループ構成を本番に合わせて調整するケースもあります。
繰り返しになりますが、groupdel はグループエントリを削除するだけのコマンドです。
実際のアクセス権限やファイル所有者の整理は、usermod・gpasswd・chgrp などと組み合わせて行う必要があります。
| short option | long option | description |
|---|---|---|
| -R | --root | 指定したディレクトリをルートディレクトリとみなしその配下の /etc/group などを操作する(chroot 環境などで使用) |
| -P | --prefix | 指定したディレクトリを /etc などのベースパスとして扱う(一部ディストリビューションでのみ利用可能) |
| -h | --help | groupdel コマンドの使い方(ヘルプ)を表示して終了する |
| -V | --version | groupdel コマンドのバージョン情報を表示して終了する |
ここでは、shadow-utils ベースの Linux 環境で一般的に利用される groupdel の主なオプションを TablePress で一覧化している想定です。
実際に使用可能なオプションや挙動は、ディストリビューションやバージョンによって異なる場合があるため、
本番環境で利用する前に man groupdel で最新の仕様を確認することをおすすめします。
ユーザ・グループ管理全体を理解するには、groupadd コマンド、useradd コマンド、gpasswd コマンド なども合わせてチェックしておくと、ライフサイクルのイメージがつかみやすくなります。
新着情報
ブログランキングに参加しています。クリックして応援していただけると嬉しいです。
