目次
概要
作成済みのグループ定義をシステムから削除するためのコマンドです。
プロジェクトの解散や、組織変更などで不要になったグループID(GID)を /etc/group および /etc/gshadow から取り除きます。
ただし、「あるユーザーのメイン(プライマリ)グループ」として設定されているグループは、安全のため削除できないという重要な制約があります。
仕様(引数・オプション)
構文
groupdel [オプション] [グループ名]
主なオプション
| オプション | 説明 |
| -f / –force | 削除対象のグループが、あるユーザーのプライマリグループであっても強制的に削除します(非推奨)。 |
※ groupdel には基本的に複雑なオプションはありません。
基本の使い方
グループ(ここでは mori_project)が存在することを確認してから削除し、再度確認して消えていることを検証するフローです。
# 削除前の確認
grep mori_project /etc/group
# グループを削除
sudo groupdel mori_project
# 削除後の確認(何も表示されなければOK)
grep mori_project /etc/group
実行結果例
# 実行前
mori_project:x:1003:mori,tanaka
# 実行後
(出力なし)
実践コマンド
削除時にエラー「cannot remove the primary group of user ‘xxx’」が出る場合
ユーザー mori のプライマリグループとして設定されているグループ(mori_main)を削除しようとすると、システムが保護機能により拒否します。
# ユーザー mori の所属情報を確認(gid=1002(mori_main) に注目)
id mori
# プライマリグループを削除しようとする
sudo groupdel mori_main
実行結果例
uid=1002(mori) gid=1002(mori_main) groups=1002(mori_main),10(wheel)
groupdel: cannot remove the primary group of user 'mori'
※このエラーが出た場合、先にユーザー mori を削除するか、usermod -g で mori のプライマリグループを別のグループに変更する必要があります。
カスタムポイント
- 強制削除 (-f)上記のプライマリグループエラーを無視して削除を強行しますが、そのユーザーのファイル所有権情報などが不整合を起こすため、通常は絶対に使用しないでください。Bash
sudo groupdel -f mori_main
注意点
- ファイルは削除されない
groupdelはあくまで「グループの定義」を消すだけです。そのグループが所有していたファイルやディレクトリは、所有グループID(GID)が数値のまま(例:1002)システムに残ります。セキュリティリスクを防ぐため、find / -gid [削除するGID]などでファイルを検索し、対処を行ってから削除するのが理想です。 - ユーザーのサブグループ設定あるユーザーの「サブグループ(セカンダリ)」として登録されているグループを削除した場合、そのユーザーの所属情報からは自動的に除去されます(ユーザー自体は消えません)。
応用
グループIDが残っているファイルを検索する
グループ削除後、数値だけのGIDになってしまった「持ち主不明」のファイルを洗い出します。
# 削除したグループID(例: 1003)を持つファイルを検索
find /home -gid 1003
まとめ
groupdel はシンプルなコマンドですが、「プライマリグループは消せない」というルールが最大のポイントです。
エラーが出たときは無理やり -f で消すのではなく、「誰がそのグループを使っているか(id mori 等)」を確認し、ユーザー側の設定を整理してから削除するようにしてください。
