目次
groupadd コマンドとは?
groupadd
コマンドは、Linux システムで新しいグループを作成するための基本的なコマンドです。
システム管理者がユーザーを管理しやすくするために、グループを利用してアクセス制御やリソース管理を行います。
このコマンドを使えば、グループ名や GID(グループ ID)などの属性を簡単に設定できます。
Linuxユーザー・グループ管理基本コマンド徹底ガイド
Linuxでは、システム上のすべての操作は「ユーザー」と「グループ」によって制御されています。これは、誰が何を操作できるかを管理する重要な仕組みです。 本記事では…
基本構文
groupadd [オプション] グループ名
- グループ名: 作成するグループの名前。
- オプション: グループの属性を指定するための追加設定。
注意: groupadd
コマンドを実行するには管理者権限(sudo
)が必要です。
主なオプション一覧
オプション | 説明 |
---|---|
-g | グループ ID (GID) を指定します。 |
-K | 指定した設定を /etc/login.defs に従って上書きします。 |
-f | グループが既に存在していてもエラーを出さず、正常終了します。 |
各オプションの実行例と結果
1. 基本的なグループの作成
sudo groupadd developers
- 結果:
- グループ
developers
が作成される。
- グループ
確認コマンド:
cat /etc/group | grep developers
出力例:
developers:x:1001:
2. 特定の GID を指定してグループを作成(-g
オプション)
sudo groupadd -g 1500 admin_group
- 結果:
- GID が 1500 のグループ
admin_group
が作成される。
- GID が 1500 のグループ
確認コマンド:
cat /etc/group | grep admin_group
出力例:
admin_group:x:1500:
3. グループが既に存在している場合の動作を変更(-f
オプション)
sudo groupadd -f existing_group
- 結果:
- グループ
existing_group
が既に存在している場合、エラーを出さずに終了する。
- グループ
確認コマンド:
grep existing_group /etc/group
出力例:
existing_group:x:1002:
4. /etc/login.defs
に従った設定の上書き(-K
オプション)
sudo groupadd -K GID_MIN=2000 -K GID_MAX=3000 custom_group
- 結果:
custom_group
の GID が範囲 2000-3000 の間で自動的に割り当てられる。
確認コマンド:
cat /etc/group | grep custom_group
出力例:
custom_group:x:2001:
/etc/login.defs
の役割とは?
/etc/login.defs
は、Linux システムでユーザーやグループの作成に関するデフォルトの設定を定義するファイルです。
たとえば、以下のような設定項目が含まれています:
- UID_MIN / UID_MAX: ユーザーIDの最小値と最大値
- GID_MIN / GID_MAX: グループIDの最小値と最大値
- CREATE_HOME: ホームディレクトリの作成を自動化するかどうか
- その他、パスワードポリシーや有効期限に関する設定
通常、groupadd
コマンドはこの設定に従ってグループを作成します。
-K
オプションで設定を上書きする理由
-K
オプションを使用すると、コマンド実行時に限り /etc/login.defs
の特定の設定を一時的に上書きできます。
この機能が必要とされる理由は次の通りです。
- 柔軟な設定
特定の要件に基づいて、デフォルト設定を一部変更したい場合に役立ちます。例えば、あるグループだけ特定の GID 範囲を使いたい場合などです。 - 複数の管理ポリシーの共存
システム全体のデフォルト設定を変更することなく、特定のケースで異なるポリシーを適用できます。 - 一時的な要件対応
一時的なニーズに基づいて、グループ作成の設定をカスタマイズすることが可能です。
使用例と適用結果
使用例: GID 範囲の変更
通常、/etc/login.defs
で次のように GID の範囲が定義されているとします:
GID_MIN 1000
GID_MAX 60000
これを一時的に上書きして、GID 範囲を 2000 から 3000 に制限してグループを作成します。
sudo groupadd -K GID_MIN=2000 -K GID_MAX=3000 custom_group
- 結果:
custom_group
の GID が 2000 から 3000 の間で自動的に割り当てられます。- 他のグループには影響を与えません。
確認コマンド:
cat /etc/group | grep custom_group
出力例:
custom_group:x:2001:
使用のタイミング
- プロジェクトごとのリソース管理
異なるプロジェクトごとに専用の GID 範囲を設定したい場合に便利です。これにより、GID の競合を防ぎ、明確な管理が可能になります。 - 特殊な権限設定
一時的または特定の用途でのみ使用されるグループを作成する際、通常の設定から逸脱したポリシーを適用できます。 - テスト環境の構築
テスト用のグループを作成する際に、既存の設定と衝突しないよう一時的に GID 範囲を変更できます。
注意点
- 永続的な変更ではない
-K
オプションの設定は、コマンドの実行時に限られます。システム全体のデフォルトを変更したい場合は、/etc/login.defs
ファイルを直接編集する必要があります。 - 競合の可能性
他の管理者やスクリプトが同時にグループを作成している場合、手動で指定した範囲で競合が発生する可能性があります。そのため、慎重に範囲を設定する必要があります。
実用例
複数のユーザーを同じグループに追加
- グループを作成:
sudo groupadd project_team
- ユーザーをグループに追加:
sudo usermod -a -G project_team alice
sudo usermod -a -G project_team bob
- 確認:
grep project_team /etc/group
出力例:
project_team:x:1003:alice,bob
新しいグループを作成し、特定のリソースへのアクセスを制限
- グループを作成:
sudo groupadd restricted_access
- ディレクトリを作成:
sudo mkdir /secure_data
- グループの所有権を設定:
sudo chown :restricted_access /secure_data
- アクセス権を変更:
sudo chmod 770 /secure_data
- 確認:
ls -ld /secure_data
出力例:
drwxrwx--- 2 root restricted_access 4096 Dec 22 12:00 /secure_data
注意点
- グループの GID を慎重に設定することで、他のグループとの衝突を防ぎます。
- グループにユーザーを追加する際には、
usermod
コマンドを使用してください。 /etc/group
ファイルを直接編集するのではなく、groupadd
やgpasswd
を利用してください。
まとめ
groupadd
コマンドは、Linux システムで効率的なグループ管理を実現する重要なツールです。
オプションを適切に活用することで、システムのアクセス制御やリソース管理が容易になります。
日常的な管理作業において、このコマンドの活用方法を理解し、正確に使いこなすことがシステム管理者にとって重要です。
【コマンド詳細】useraddコマンドの使い方とオプションまとめ
useradd コマンドとは? useradd コマンドは、Linux システムで新しいユーザーアカウントを作成するための基本コマンドです。このコマンドを使用して、ユーザー名、ホー…
【コマンド詳細】usermodコマンドの使い方とオプションまとめ
usermod コマンドとは? usermod コマンドは、Linux システムで既存のユーザーアカウントを変更・管理するためのコマンドです。このコマンドを使用すると、ユーザーの属…
【コマンド詳細】groupmodコマンドの使い方とオプションまとめ
groupmod コマンドとは? groupmod コマンドは、既存のグループの属性を変更するために使用されるLinuxのシステム管理コマンドです。グループ名の変更やグループ ID (GI…