目次
概要
作成済みのグループ定義(グループ名やGID)を変更するためのコマンドです。
組織の名称変更に合わせてグループ名をリネームしたり、システム移行やセキュリティポリシーの変更に伴ってグループID(GID)を振り直したりする際に使用します。
特にGIDを変更する場合は、既存ファイルのアクセス権限に影響が出るため、慎重な操作が求められます。
仕様(引数・オプション)
構文
groupmod [オプション] [グループ名]
主なオプション
| オプション | 説明 |
| -n [新グループ名] | グループの名前を変更します(Rename)。 |
| -g [GID] | グループID(GID)の数値を変更します。 |
| -o / –non-unique | -g と併用し、既に使用されているGIDへの重複変更を許可します。 |
基本の使い方
既存のグループ名(ここでは mori_dev)を、新しい名前(mori_prod)に変更します。
ID(GID)はそのまま維持され、名前だけが書き換わります。
# 変更前の確認
grep mori_dev /etc/group
# グループ名を 'mori_dev' から 'mori_prod' に変更
sudo groupmod -n mori_prod mori_dev
# 変更後の確認(mori_devは消え、mori_prodになっている)
grep mori_prod /etc/group
実行結果例
# 変更前
mori_dev:x:1005:mori
# 変更後
mori_prod:x:1005:mori
実践コマンド
グループID(GID)を変更する
グループ名は変えずに、システム上の識別番号であるGIDだけを変更します。
ここでは mori_prod グループのGIDを 2026 に変更します。
# GIDを 2026 に変更
sudo groupmod -g 2026 mori_prod
# 確認
grep mori_prod /etc/group
実行結果例
mori_prod:x:2026:mori
カスタムポイント
- 重複GIDの許可 (-o)通常、既に使われているGIDを指定するとエラーになりますが、特権権限の共有など特殊な目的で「あえて同じGIDにしたい」場合に
-oを使用します。Bash# 既存のGID 1000 と同じIDを mori_sub グループにも割り当てる sudo groupmod -g 1000 -o mori_sub
注意点
- GID変更後のファイル所有権問題(最重要)
groupmod -gでGIDを変更しても、そのグループが所有していたファイルのGID情報は自動的に書き換わりません。変更前のGID(数値)がそのままファイルに残ってしまうため、ファイルへのアクセス権限が失われたり、「所有グループなし」の状態になったりします。応用セクションの手順でファイルの権限修正が必要です。 - グループ名変更の影響グループ名の変更(
-n)だけであれば、内部的なGIDは変わらないため、ファイルのアクセス権限に影響はありません。ただし、設定ファイル内などでグループ名を直接記述している箇所(sudoers設定など)は手動で修正する必要があります。 - ログイン中の影響変更対象のグループに所属しているユーザー(mori等)がログイン中の場合、変更内容は次回のログインまで反映されません。
応用
GID変更に伴うファイルの所有権修正
GIDを変更した後、旧GID(ここでは変更前の 1005)が設定されているファイルをシステム全体から検索し、新GID(2026 または新グループ名 mori_prod)に一括修正します。
# 旧GID(1005)を持つファイルを検索し、新グループ(mori_prod)に変更
sudo find / -gid 1005 -exec chgrp mori_prod {} \;
※ /(ルート)から検索すると時間がかかるため、/home や /var など対象ディレクトリを絞ることを推奨します。
まとめ
groupmod は、グループの「改名」と「ID変更」を行うコマンドです。
名前を変えるだけの -n は安全ですが、IDを変える -g はファイルシステムの整合性に影響を与えます。「GIDを変えたら、find コマンドでファイルの所有情報もメンテナンスする」というセット作業を必ず覚えておいてください。
