新Linux入門|Linuxで/etc/groupを理解しよう!グループ情報とユーザーの関係を学ぶ

Linuxでは、複数のユーザーが同じシステムを利用するのが一般的です。
そのときに重要になるのが「グループ(group)」の仕組みです。

 グループは、ユーザーをまとめて管理し、アクセス制御やファイル共有をスムーズに行うために使われます。
そして、グループに関する情報を管理しているのが /etc/group ファイルです。

今回は、この /etc/group ファイルの中身と、その仕組みをやさしく解説します。

🧾/etc/groupファイルとは?

/etc/group ファイルは、Linuxシステムに存在するすべてのグループ情報を保持しているファイルです。
 このファイルを参照することで、どんなグループがあり、どのユーザーがどのグループに属しているのかを確認できます。

項目内容
ファイル名/etc/group
役割システム上のグループ情報を保持
アクセス権一般ユーザーでも閲覧可能(読み取り専用)
関連ファイル/etc/gshadow(グループのパスワード情報を保持)

💡 ポイント
グループに関する基本設定はこの /etc/group に書かれていますが、
セキュリティ情報(パスワードなど)は /etc/gshadow に分離されています。

🔍 /etc/groupファイルのフォーマット

/etc/group はテキスト形式で構成されており、1行が1つのグループ情報を表しています。

フォーマット

group_name:password:GID:user_list
フィールド名内容
group_nameグループ名(識別名)developers
passwordグループパスワード(通常はx)x
GIDグループID(数値)1001
user_listグループに所属するユーザー(カンマ区切り)suzuki,tanaka

💬 解説

  • group_name:グループの名前を示します。
  • password:通常は x で表され、実際のパスワードは /etc/gshadow に保存されます。
  • GID(Group ID):グループを数値で識別します。
  • user_list:そのグループに所属するユーザー名をカンマで区切って記述します。

🧩 /etc/groupファイルの例を見てみよう

[suzuki@AlmaLinux ~]$ cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
wheel:x:10:root
suzuki:x:1000:suzuki
developers:x:1001:suzuki,tanaka

上の出力は、AlmaLinux 9.6 環境での /etc/group の一部です。

例えば次の行を見てみましょう。

developers:x:1001:suzuki,tanaka

この行を分解すると次のようになります。

フィールド意味
group_namedevelopersグループ名
passwordxパスワードは/etc/gshadowで管理
GID1001グループID
user_listsuzuki,tanakaグループに所属するユーザー

📘 まとめると

  • "developers" というグループが存在し、
  • GID は 1001 で、
  • suzuki と tanaka の2人がメンバーとして所属しています。

🛠 関連コマンドで確認・操作する

グループ情報を確認する(cat /etc/group)

[suzuki@AlmaLinux ~]$ cat /etc/group

📘 解説
グループ情報をすべて表示します。
ファイルの中身を直接確認したいときに使用します。

特定のグループを検索する(grep)

[suzuki@AlmaLinux ~]$ grep developers /etc/group
developers:x:1001:suzuki,tanaka

📘 解説
特定のグループだけを抽出して確認できます。
grep グループ名 /etc/group の形で使います。

グループ情報を安全に取得する(getent group)

[suzuki@AlmaLinux ~]$ getent group developers
developers:x:1001:suzuki,tanaka

📘 解説
getent コマンドは、システムデータベース(/etc/group など)から安全に情報を取得します。
LDAPなど外部認証を使っている環境でも正確に情報を取得できます。

🧱 関連コマンドの主なオプション一覧

コマンド主な用途主なオプション説明
catファイル内容を表示(なし)指定ファイルの全内容を出力
grep特定文字列の検索-i, -v部分一致検索や除外検索
getentシステム情報取得group, passwdシステムデータベースの内容を取得

🧰 /etc/groupファイルはどう使われているの?

このファイルは、ファイルアクセス権限やリソース管理において非常に重要です。
ファイルやディレクトリには「所有者」「グループ」「その他」の3種類の権限があります。

例:

-rw-r----- 1 suzuki developers 2048 Oct 28 21:00 report.txt
項目内容
所有者suzuki
所有グループdevelopers
アクセス権所有者=rw, グループ=r, その他=なし

📘 解説
 この例では、suzuki本人とdevelopersグループのメンバーだけがファイルを読めるようになっています。
つまり、グループ情報(/etc/group)はアクセス制御の基礎として利用されています。

🔒 セキュリティと/etc/gshadow

/etc/group の2番目のフィールド(パスワード)は通常「x」となっており、
実際のパスワードは /etc/gshadow に保存されます。

ファイル名内容権限
/etc/groupグループ情報(一般ユーザーも閲覧可)644
/etc/gshadowパスワードなどの機密情報600(rootのみ閲覧可)

📘 解説
セキュリティ保護のため、一般ユーザーは /etc/gshadow を閲覧できません。
グループのパスワード機能を利用することは少ないですが、
ファイル共有の制限などにおいて内部的に利用されることがあります。

⚙️ /etc/groupを安全に編集するには?

直接編集することも可能ですが、誤って構文を壊すとシステムに影響します。
そのため、通常は次のコマンドで管理します。

操作内容使用コマンド
グループを作成groupaddgroupadd developers
グループを削除groupdelgroupdel developers
ユーザーをグループに追加usermod -aGusermod -aG developers suzuki

📘 補足
どうしても直接編集する場合は vipw -g コマンドを使うと安全に編集できます。

✅ まとめ

  • /etc/group は Linuxのグループ情報を管理する重要なファイル。
  • 各行が1つのグループを表し、グループ名・GID・メンバー情報が記載されている。
  • パスワード情報は /etc/gshadow に分離され、セキュリティを確保。
  • コマンド(groupadd、usermod、groupdel)を使って安全に操作するのが基本。
操作内容コマンド例説明
グループの確認cat /etc/group全グループを表示
特定グループの検索grep developers /etc/group特定グループのみ表示
グループとユーザーの関係確認getent group developers正確な情報を取得

/etc/group は、Linuxのユーザー管理とセキュリティの「土台」となるファイルです。
 これを理解することで、ファイルアクセスやユーザー管理の仕組みがより深く理解できるようになります。