このページで解説している内容は、以下の 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におけるグループ管理は、セキュリティとアクセス制御を効率的に行うための基盤です。ユーザー管理とあわせて理解しておくことが重要です。