【コマンド詳細】groupaddコマンドの使い方とオプションまとめ

  • URLをコピーしました!
目次

groupadd コマンドとは?

groupadd コマンドは、Linux システムで新しいグループを作成するための基本的なコマンドです。
システム管理者がユーザーを管理しやすくするために、グループを利用してアクセス制御やリソース管理を行います。
このコマンドを使えば、グループ名や GID(グループ ID)などの属性を簡単に設定できます。

基本構文

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 が作成される。
確認コマンド:
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 の特定の設定を一時的に上書きできます。
この機能が必要とされる理由は次の通りです。

  1. 柔軟な設定
    特定の要件に基づいて、デフォルト設定を一部変更したい場合に役立ちます。例えば、あるグループだけ特定の GID 範囲を使いたい場合などです。
  2. 複数の管理ポリシーの共存
    システム全体のデフォルト設定を変更することなく、特定のケースで異なるポリシーを適用できます。
  3. 一時的な要件対応
    一時的なニーズに基づいて、グループ作成の設定をカスタマイズすることが可能です。

使用例と適用結果

使用例: 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:

使用のタイミング

  1. プロジェクトごとのリソース管理
    異なるプロジェクトごとに専用の GID 範囲を設定したい場合に便利です。これにより、GID の競合を防ぎ、明確な管理が可能になります。
  2. 特殊な権限設定
    一時的または特定の用途でのみ使用されるグループを作成する際、通常の設定から逸脱したポリシーを適用できます。
  3. テスト環境の構築
    テスト用のグループを作成する際に、既存の設定と衝突しないよう一時的に GID 範囲を変更できます。

注意点

  • 永続的な変更ではない
    -K オプションの設定は、コマンドの実行時に限られます。システム全体のデフォルトを変更したい場合は、/etc/login.defs ファイルを直接編集する必要があります。
  • 競合の可能性
    他の管理者やスクリプトが同時にグループを作成している場合、手動で指定した範囲で競合が発生する可能性があります。そのため、慎重に範囲を設定する必要があります。

実用例

複数のユーザーを同じグループに追加

  1. グループを作成:
sudo groupadd project_team
  1. ユーザーをグループに追加:
sudo usermod -a -G project_team alice
sudo usermod -a -G project_team bob
  1. 確認:
grep project_team /etc/group
出力例:
project_team:x:1003:alice,bob

新しいグループを作成し、特定のリソースへのアクセスを制限

  1. グループを作成:
sudo groupadd restricted_access
  1. ディレクトリを作成:
sudo mkdir /secure_data
  1. グループの所有権を設定:
sudo chown :restricted_access /secure_data
  1. アクセス権を変更:
sudo chmod 770 /secure_data
  1. 確認:
ls -ld /secure_data
出力例:
drwxrwx--- 2 root restricted_access 4096 Dec 22 12:00 /secure_data

注意点

  • グループの GID を慎重に設定することで、他のグループとの衝突を防ぎます。
  • グループにユーザーを追加する際には、usermod コマンドを使用してください。
  • /etc/group ファイルを直接編集するのではなく、groupaddgpasswd を利用してください。

まとめ

groupadd コマンドは、Linux システムで効率的なグループ管理を実現する重要なツールです。
オプションを適切に活用することで、システムのアクセス制御やリソース管理が容易になります。
日常的な管理作業において、このコマンドの活用方法を理解し、正確に使いこなすことがシステム管理者にとって重要です。

    目次