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

概要

 
Linux の groupadd コマンド は、新しいグループ(/etc/group のエントリ)を作成するためのコマンドです。
Web アプリ用のグループを作ったり、特定のプロジェクトメンバー専用のグループを用意したりと、ユーザー管理・権限設計の土台として必ず登場します。
 

オプションを指定することで、グループ ID(GID)を明示的に指定したり、システムグループを作成したり、
既存グループとの重複を許可/禁止したりといった制御も可能です。
誤った GID で作成すると後から修正が面倒になるため、本番環境では方針を決めてから使うのがおすすめです。
 

フォーマット

 

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

 

基本形は非常にシンプルで、グループ名だけを指定すれば /etc/group に新しいグループが追加されます。
必要に応じて -g(GID 指定)-r(システムグループ) などのオプションを組み合わせます。

 

よく使うコマンド例

 

・最も基本的な使い方:新しいグループを作成する。

sudo groupadd developers

developers という名前のグループを新規作成します。
GID を指定しない場合は、システムが未使用の GID を自動的に割り当てます。

 

・GID を指定してグループを作成する。

sudo groupadd -g 1100 webadmin

-g オプションで GID を指定してグループを作成します。
複数台サーバで GID をそろえたい場合や、ディレクトリと GID をきっちり管理したいときに使います。
既に同じ GID が使われているとエラーになるため注意してください。

 

・システムグループを作成する。

sudo groupadd -r appsys

-r オプションを付けると、システムグループとして作成します。
多くのディストリビューションでは、システムグループ専用の GID 範囲(小さい番号)があり、ユーザー向けとは別管理されます。
デーモン用ユーザー・グループを作る場合などに利用されます。

 

・既にグループが存在していてもエラーにせず終了させる。

sudo groupadd -f developers

-f オプションは「force」の略で、developers が既に存在している場合でもエラーにせず成功扱いで終了します。
構成管理ツールやスクリプトの中で、「あればそのまま/なければ作成」という処理を雑に書きたいときに便利です。

 

・GID が重複していても許可する(非推奨に近い上級者向け)。

sudo groupadd -g 2000 -o sharedgroup

-o オプション(non-unique)は、既に使われている GID をあえて再利用することを許可します。
特殊な用途以外ではあまり使いませんし、権限管理が複雑になるため、基本的には避けたほうが安全です。

 

・暗号化済みパスワードを持つグループを作成する(ほぼ使わない)。

sudo groupadd -p '暗号化済み文字列' securegroup

-p オプションで「暗号化済みパスワード」を渡すことができますが、
グループパスワードの運用自体が一般的ではなく、
パスワード管理には gpasswd を使うことが推奨されています。

 

・chroot 環境や別のルートディレクトリ配下の /etc/group を操作する。

sudo groupadd --root /mnt/chroot webadmin

–root ディレクトリを指定すると、実際のルートではなく、そのディレクトリ配下をルートとして扱います。
chroot 環境や別ボリューム上のシステムを準備しているときなどに使います。

 

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

 

・アプリケーション用グループを作って権限をまとめる
Web アプリケーションやバッチ処理用ユーザーを作成する前に、
groupadd appgroup のように専用グループを用意しておくと、
ディレクトリの所有グループやアクセス権をグループ単位で整理しやすくなります。
 

・複数サーバ間で GID をそろえて運用する
NFS 共有や複数 Web サーバでの運用では、UID/GID の整合性が重要になります。
-g オプションで GID を明示し、全サーバで同じ設定にしておくと、権限周りのトラブルを防ぎやすくなります。
 

・システムユーザー/グループを分けて整理する
デーモンやサービス用のユーザー・グループは -r を使ってシステムグループとして管理し、
通常ユーザーと番号帯を分けることで、どの ID が何のためのものかが把握しやすくなります。
 

・構成管理ツールやセットアップスクリプトからのグループ作成
Ansible やシェルスクリプトでサーバ初期設定を自動化する際に、
groupadd -f を使って「既にあれば OK、なければ作る」という処理を書くことがよくあります。
 

なお、groupadd でグループを作成しただけでは、ユーザーはそのグループに所属していません
実際の運用では、usermod コマンド などでユーザーをグループに追加していく流れになります。

 

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

 

short optionlong optiondescription
-f--force指定したグループが既に存在していてもエラーにせず成功扱いで終了する(GID 指定時は別の未使用 GID を自動選択することがある)
-g--gid作成するグループの GID(グループ ID)を明示的に指定する
-r--system通常ユーザー用ではなくシステムグループとして作成する(小さい GID 範囲を使用するディストリビューションが多い)
-o--non-unique既に使用されている GID であっても重複を許可してグループを作成する(特別な用途向け)
-p--password暗号化済みのグループパスワードを指定する(実務ではほとんど利用されず、gpasswd の使用が推奨される)
-K--keylogin.defs の設定値を一時的に上書きする(例: -K GID_MIN=2000)
-R--root指定したディレクトリをルートディレクトリとみなしてその配下の /etc/group を操作する(chroot 環境などで使用)
-P--prefix指定したディレクトリを /etc などのベースパスとして扱う(システムによっては利用不可の場合もある)
-h--helpgroupadd コマンドの使い方(ヘルプ)を表示して終了する
-V--versiongroupadd コマンドのバージョン情報を表示して終了する
 

ここでは、Linux(主に shadow-utils ベース)の groupadd コマンドでよく使う主なオプションを TablePress の表にまとめています。
ディストリビューションによって対応しているオプションが異なる場合があるため、詳細は各システムの man groupadd も確認してください。

ユーザー・グループ管理全体の流れを理解するには、useradd コマンドgpasswd コマンド の使い方もあわせて押さえておくとよいでしょう。

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


人気ブログランキング

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