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

概要

 
groupmod コマンドは、既に作成されているグループの属性を変更するためのコマンドです。
グループ名(name)や GID(グループ ID)、グループパスワードなどを変更する際に利用します。
 

/etc/group/etc/gshadow の内容を書き換えるため、基本的には root 権限で実行する必要があります。
GID を変更する場合は、既存ファイルの所有グループや他サーバとの整合性にも注意が必要です。
 

フォーマット

 

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

 

対象とする既存グループ名を指定し、-n で新しい名前、-g で新しい GID などを指定して変更します。
グループを新規作成するときは groupadd、削除するときは groupdel を使用します。

 

よく使うコマンド例

 

・グループ名を変更する。

sudo groupmod -n webteam www

-n 新しいグループ名 を指定することで、グループ名を変更できます。
この例では、既存のグループ www の名前を webteam に変更しています。
所有グループ名の表示なども新しい名前に切り替わるため、運用上の名称を揃えたいときに便利です。

 

・GID(グループ ID)を変更する。

sudo groupmod -g 1200 developers

-g で新しい GID を指定することで、developers グループの GID を 1200 に変更します。
複数サーバで GID を統一したい場合や、GID 範囲を整理したい場合に使います。
既に同じ GID が別グループで使われている場合はエラーになります(-o で重複を許容することもできますが、通常は非推奨です)。

 

・既に使われている GID に変更する(特殊ケース)。

sudo groupmod -g 1000 -o sharedgroup

-o(non-unique)を付けると、既に他グループで使われている GID への変更を許可します。
特殊な運用以外ではおすすめできませんが、意図的に GID を共有したい場合などに限定的に使われることがあります。

 

・グループのパスワード(gshadow)を変更する。

sudo groupmod -p '暗号化済み文字列' devgroup

-p は「暗号化済みのパスワード文字列」を渡すオプションです。
グループパスワード機能自体は実務ではほとんど使われないため、多くの環境では gpasswd を使ったメンバー管理が主流です。
このオプションを使う必要が出てくるケースはかなり稀です。

 

・chroot 環境内のグループ情報を変更する。

sudo groupmod --root /mnt/chroot -g 1200 appgroup

–root ディレクトリ を指定すると、そのディレクトリをルートとみなして、
/mnt/chroot/etc/group などを対象にグループ変更を行います。
chroot 環境やインストール用イメージのグループ設定を、本番環境に合わせて調整したいときに使われます。

 

・groupmod 実行前後にグループ情報を確認する。

getent group developers

groupmod を行う前後で getent group グループ名 を実行し、
グループ名や GID、メンバー構成が想定どおりになっているかを確認しておくと安心です。

 

※ GID を変更した場合、既存ファイルの所有グループに古い GID が残ったままになることがあります。
必要に応じて find / -group 旧GID -ls などで該当ファイルを洗い出し、chgrpchown で修正してください。

 




実務でのよくある使いどころ

 

・グループ名の整理・リネーム
プロジェクト名の変更や役割名の整理に合わせて、
wwwwebteamdevdevelopers のようにグループ名を分かりやすく整える場合に groupmod を使います。
 

・複数サーバ間での GID 統一
NFS 共有などで UID/GID の整合性が重要な環境では、
既存サーバの GID を groupmod -g で揃えていくことで、権限周りのトラブルを減らせます。
 

・インストールイメージや chroot 環境の調整
新しい OS イメージや chroot 環境の構築時に、
--root を使って本番と同じグループ名・GID に揃えておくと、デプロイ後の差異が少なくなります。
 

・設定ミスの修正
誤った GID や不適切なグループ名で作成してしまった場合、
groupmod で修正しつつ、ファイル所有権や sudoers 設定などをあわせて見直すのが定番の流れです。
 

groupmod 自体は「グループ情報を変えるだけ」のコマンドなので、
ユーザ所属の変更やファイル所有権の修正は、gpasswd コマンドusermodchgrp などと組み合わせて行う必要があります。

 

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

 

short optionlong optiondescription
-g--gidグループの GID(グループ ID)を変更する
-n--new-nameグループ名を新しい名前に変更する
-o--non-unique既に使用されている GID であっても重複を許可して変更する(特殊用途向け)
-p--password暗号化済みのグループパスワードを設定する(実務ではほとんど使用されない)
-R--root指定したディレクトリをルートとみなしその配下の /etc/group などを操作する(chroot 環境などで使用)
-P--prefix指定したディレクトリを /etc などのベースパスとして扱う(一部ディストリビューションでのみ利用可能)
-h--helpgroupmod コマンドの使い方(ヘルプ)を表示して終了する
-V--versiongroupmod コマンドのバージョン情報を表示して終了する
 

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

グループの新規作成・変更・削除の一連の流れを理解するには、groupadd コマンドgroupdel コマンド もあわせてチェックしておくとよいでしょう。

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


人気ブログランキング

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