はじめに

こんにちは!今回はaddgroupコマンドについて解説します。

addgroupは、Linuxシステムに新しいグループを追加するコマンドです。ファイルやディレクトリへのアクセス権限を複数のユーザーで共有したいときに使います。

ユーザー管理の基本中の基本ですね。これ超重要です!

addgroupコマンドとは

addgroupは、Debian系Linuxの外部コマンドです。

/etc/groupファイルにグループエントリを追加します。複数のユーザーを同じグループに所属させることで、ファイルやディレクトリのアクセス権限を効率的に管理できます。

対になるdelgroupコマンドと一緒に使って、グループを管理します。

基本構文

1
addgroup [オプション] GROUPNAME

GROUPNAMEには、追加するグループの名前を指定します。

主なオプション

オプション 説明
--gid GID グループID(GID)を指定
--system システムグループとして作成
--quiet 詳細メッセージを表示しない

使用例

例1: 基本的なグループ作成

1
sudo addgroup developers

実行結果:

1
2
Adding group `developers' (GID 1001) ...
Done.

developersという新しいグループが作成されます。GIDは自動で割り当てられます。

例2: グループの確認

1
cat /etc/group | grep developers

実行結果:

1
developers:x:1001:

新しく作成されたグループが/etc/groupファイルに登録されています。

例3: GIDを指定してグループ作成

1
sudo addgroup --gid 2000 webteam

実行結果:

1
2
Adding group `webteam' (GID 2000) ...
Done.

GIDを2000と明示的に指定してグループを作成します。

例4: ユーザーをグループに追加

1
sudo addgroup user1 developers

実行結果:

1
2
Adding user `user1' to group `developers' ...
Done.

既存ユーザーをグループに追加します。

例5: 複数ユーザーをグループに追加

1
2
3
sudo addgroup user1 developers
sudo addgroup user2 developers
sudo addgroup user3 developers

実行結果:

1
2
3
4
5
6
Adding user `user1' to group `developers' ...
Done.
Adding user `user2' to group `developers' ...
Done.
Adding user `user3' to group `developers' ...
Done.

複数のユーザーを同じグループに追加します。

例6: グループ情報の詳細確認

1
getent group developers

実行結果:

1
developers:x:1001:user1,user2,user3

グループに属するユーザー一覧を確認できます。

例7: システムグループの作成

1
sudo addgroup --system www-data-custom

実行結果:

1
2
Adding group `www-data-custom' (GID 106) ...
Done.

システムグループとして作成(GIDは100-999の範囲)。

例8: ディレクトリのグループ権限設定

1
2
3
sudo mkdir /shared
sudo chgrp developers /shared
sudo chmod 775 /shared

実行結果:

1
(成功時は何も表示されない)

グループが所有するディレクトリを作成し、グループメンバーが読み書き実行可能にします。

Tips・注意点

rootユーザーのみが実行可能

グループの作成にはroot権限が必要です。通常ユーザーが実行するとパーミッションエラーが発生します。

グループ名の命名規則

グループ名は小文字で始まり、英数字とハイフン、アンダースコアのみを使うことが推奨されます。

1
2
3
4
5
# 良い例
developers, qa-team, data_science

# 避けるべき
Developers, QA Team, データサイエンス

GIDの範囲に注意

  • ユーザーグループのGID: 1000以上
  • システムグループのGID: 100-999

同じGIDで複数グループを作成しない

GIDは一意である必要があります。既に使用されているGIDは指定できません。

グループ名の重複チェック

1
getent group groupname

グループが既に存在するか確認できます。

実践的な使い方

Webサーバーユーザーのグループ管理

1
2
3
4
5
sudo addgroup webadmins
sudo addgroup www-data webadmins
sudo addgroup user1 webadmins
sudo chmod 750 /var/www
sudo chgrp webadmins /var/www

Webサーバーディレクトリを複数の管理者で共有する場合。

プロジェクトチームのグループ作成

1
2
3
4
5
6
sudo addgroup --gid 2001 project-alpha
sudo addgroup user1 project-alpha
sudo addgroup user2 project-alpha
sudo mkdir /projects/alpha
sudo chgrp project-alpha /projects/alpha
sudo chmod 775 /projects/alpha

プロジェクトメンバー専用の共有ディレクトリをセットアップします。

開発環境での権限管理

1
2
3
4
5
6
7
# docker グループを作成(docker非root実行用)
sudo addgroup docker
sudo addgroup $USER docker

# 開発ツールのグループ
sudo addgroup developers
sudo addgroup buildtools

開発環境で複数のツール用グループを作成します。

まとめ

addgroupコマンドのポイント:

  • Linuxシステムにグループを追加するコマンド
  • ファイルやディレクトリへのアクセス権限を効率的に管理
  • addgroup グループ名で基本的な使用
  • --gidオプションでGIDを指定可能
  • --systemオプションでシステムグループを作成
  • addgroup ユーザー グループでグループにユーザーを追加
  • よく使う組み合わせ: addgroup groupnameaddgroup username groupnamechgrp

Linuxのアクセス制御の基本となるグループ管理。プロジェクトチームやシステム管理を効率的に進めるために、グループの作成と管理をしっかり習慣にしましょう!