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

概要

 
groupdel コマンドは、既に作成されているグループ(/etc/group のエントリ)を削除するためのコマンドです。
不要になったアプリケーション用グループや、一時的に作成した検証用グループなどを削除する際に使用します。
 

ただし、まだユーザがそのグループを primary グループとして使用している場合は削除できない、などの制約があります。
また、groupdel はグループのエントリを削除するだけで、既存ファイルの所有グループや ACL までは自動で書き換えません
実運用では、事前に影響範囲を確認してから実行することが重要です。
 

フォーマット

 

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

 

基本的には、削除したいグループ名をひとつ指定するだけで、/etc/group および関連するシステムファイルからグループが削除されます。
ただし、/etc/gshadow などのグループ関連ファイルも一緒に更新されるため、root 権限での実行が前提となります。

 

よく使うコマンド例

 

・単純にグループを削除する(最も基本的な使い方)。

sudo groupdel developers

developers という名前のグループを削除します。
このグループがいずれかのユーザの primary グループになっている場合は削除できず、エラーになります。
その場合は、先に usermoduserdel などでユーザ側の設定を変更してから再度実行します。

 

・アプリケーション用に作成していたグループを削除する。

sudo groupdel appgroup

アプリケーションのアンインストールやサービス撤去にあわせて、
そのアプリ専用に作っていたグループ(例:appgroup)を削除するときに使います。
削除前に、関連ディレクトリの所有グループや ACL 設定が残っていないか確認しておくと安心です。

 

・削除前に、グループに所属しているユーザを確認する。

getent group developers

groupdel を実行する前に、getent group でそのグループに所属しているユーザを確認しておきます。
メンバーが残っている場合は、gpasswd -dusermod -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 はグループエントリを削除するだけのコマンドです。
実際のアクセス権限やファイル所有者の整理は、usermodgpasswdchgrp などと組み合わせて行う必要があります。

 

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

 

short optionlong optiondescription
-R--root指定したディレクトリをルートディレクトリとみなしその配下の /etc/group などを操作する(chroot 環境などで使用)
-P--prefix指定したディレクトリを /etc などのベースパスとして扱う(一部ディストリビューションでのみ利用可能)
-h--helpgroupdel コマンドの使い方(ヘルプ)を表示して終了する
-V--versiongroupdel コマンドのバージョン情報を表示して終了する
 

ここでは、shadow-utils ベースの Linux 環境で一般的に利用される groupdel の主なオプションを TablePress で一覧化している想定です。
実際に使用可能なオプションや挙動は、ディストリビューションやバージョンによって異なる場合があるため、
本番環境で利用する前に man groupdel で最新の仕様を確認することをおすすめします。

ユーザ・グループ管理全体を理解するには、groupadd コマンドuseradd コマンドgpasswd コマンド なども合わせてチェックしておくと、ライフサイクルのイメージがつかみやすくなります。

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


人気ブログランキング

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