このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linux基礎:グループの作成と管理

グループの作成と管理
Linuxでは、ユーザー単位でのアクセス制御だけでなく、グループ を活用して複数のユーザーをまとめて管理することができます。グループを利用すると、あるグループに属するユーザーだけにファイルを閲覧させたり、特定のディレクトリに書き込みを許可したりと、柔軟な権限管理が可能になります。
本記事では、グループの作成、ユーザーの追加、グループの削除 といった管理方法について解説します。また、/etc/group ファイルや /etc/passwd ファイルを確認することで、システムにおけるグループ情報の管理方法を理解していきます。

1.グループの作成
1.1. groupaddコマンド
新しいグループを作成するには、groupadd コマンドを使います。この操作はroot権限でのみ可能です。
書式
groupadd グループ名主なオプションを以下にまとめます。
| オプション | 説明 |
|---|---|
| -g GID | グループIDを指定して作成する。 |
| -r | システムグループとして作成する。 |
1.2. 実行例: グループ作成
ここでは developers というグループを作成してみます。
【例1】developersグループを作成
[user@rocky9 ~]$ su -
パスワード:
[root@rocky9 ~]# groupadd developers
[root@rocky9 ~]# grep developers /etc/group
developers:x:1002:→ 新しいグループ developers が作成され、GIDが割り当てられました。
2.グループへのユーザー追加
2.1. usermodコマンド
既存ユーザーをグループに追加するには、usermod コマンドを使います。
書式
usermod -G グループ名 ユーザー名 なお、ユーザーを既存のサブグループに追加する場合は -a オプションを組み合わせて使うと安全です(既存のグループを消さずに追加できる)。
-Gオプションだけだと、既存のグループを上書きするため、このコマンドでグループを追加する場合は既に追加してあるグループを全て指定しないといけません。
| オプション | 説明 |
|---|---|
| -G | 所属する補助グループを指定する。 |
| -a | 既存のグループに追加で参加させる。 |
2.2. 実行例: ユーザーをグループに追加
tanaka ユーザーを developers グループに追加します。
【例2】tanakaユーザーをdevelopersに追加
[root@rocky9 ~]# usermod -aG developers tanaka
[root@rocky9 ~]# id tanaka
uid=1001(tanaka) gid=1001(tanaka) groups=1001(tanaka),1002(developers)→ tanaka ユーザーが developers グループに所属していることが確認できます。
3.グループの削除
3.1. groupdelコマンド
不要になったグループを削除するには、groupdel コマンドを利用します。
書式
groupdel グループ名【例3】oldteam グループを削除
まず、oldteamグループを作成しておきます。
[root@rocky9 ~]# groupadd oldteam次にoldteamグループを
[root@rocky9 ~]# groupdel oldteam注意点として、削除対象のグループがあるユーザーのプライマリグループになっている場合は削除できません。
【例4】失敗例(プライマリグループの削除)
[root@rocky9 ~]# groupdel tanaka
groupdel: ユーザ 'tanaka' のプライマリグループは削除できません。4.グループ情報の管理
4.1. /etc/groupファイル
グループ情報は /etc/group ファイルに記録されています。
【例5】/etc/group(一部抜粋)
root:x:0:
user:x:1000:
tanaka:x:1001:
developers:x:1003:tanaka書式
グループ名:パスワード欄:GID:所属ユーザー- GID … グループを識別する番号
- 所属ユーザー … サブグループとして参加しているユーザー
4.2. /etc/passwdとの関係
ユーザーのプライマリグループは /etc/passwd ファイルの 第4フィールド (GID) に記録されています。
【例6】/etc/passwd の抜粋
[root@rocky9 ~]# grep tanaka /etc/passwd
tanaka:x:1001:1001::/home/tanaka:/bin/bash- UID = 1001 (ユーザーID)
- GID = 1001 (プライマリグループ: tanaka)
まとめ
- グループ作成は
groupaddコマンドで行う。 - ユーザーをグループに追加するには
usermod -aGを利用する。 - 不要なグループは
groupdelで削除できるが、プライマリグループは削除不可。 - グループ情報は
/etc/group、プライマリグループは/etc/passwdで確認できる。
Linuxにおけるグループ管理は、セキュリティとアクセス制御を効率的に行うための基盤です。ユーザー管理とあわせて理解しておくことが重要です。
