カテゴリ: Linux 更新日: 2026/02/10

LinuxのグループID(GID)とは?仕組みと役割を初心者向けに徹底解説!

LinuxのグループID(GID)とは?仕組みと役割を解説
LinuxのグループID(GID)とは?仕組みと役割を解説

先生と生徒の会話形式で理解しよう

生徒

「Linuxの設定を見ていると『GID』という言葉が出てきたのですが、これは何のことですか?」

先生

「GIDは『Group IDentifier』の略で、Linuxがユーザーのグループを識別するための背番号のようなものですよ。」

生徒

「背番号ですか?名前じゃなくて数字で管理されているということでしょうか?」

先生

「その通りです!コンピューターにとっては名前よりも数字の方が扱いやすいんです。今日はGIDの仕組みを詳しく見ていきましょう。」

1. GID(グループID)の基本概念

1. GID(グループID)の基本概念
1. GID(グループID)の基本概念

Linuxというオペレーティングシステム(OS)は、複数の人が同時に使うことを前提に作られています。そのため、誰がどのファイルを使えるのかを管理する「ユーザー管理」と、複数のユーザーをひとまとめにする「グループ管理」という仕組みがあります。

GID(Group IDentifier)は、このグループ一つひとつに割り振られた固有の識別番号です。人間は「developers(開発チーム)」や「sales(営業チーム)」といった名前でグループを認識しますが、Linuxシステム内部では「1001番」や「1002番」といった数字で判断しています。

学校で例えるなら、「1年A組」というクラス名がグループ名で、出席番号やクラスコードがGIDにあたります。先生が名簿を確認するとき、名前だけでなく番号で管理すると間違いが少ないのと同じ理屈です。

2. なぜ名前ではなく「ID」が必要なのか

2. なぜ名前ではなく「ID」が必要なのか
2. なぜ名前ではなく「ID」が必要なのか

パソコンを触ったことがない方には、「わざわざ数字にする必要はあるの?」と不思議に思うかもしれません。しかし、コンピューターの世界では数字による管理がとても重要です。

例えば、グループ名を後から変更したい場面を想像してください。もしシステムが名前だけで管理していたら、名前を変えるたびに関連するすべての設定を書き換えなければならず、非常に大変な作業になります。しかし、「1001番というID」に紐付いた名前として管理していれば、名前を変えてもIDさえ変わらなければ、システムは混乱せずに済みます。

また、数字はデータの処理速度が速く、メモリというパソコンの記憶領域を節約できるというメリットもあります。私たちが普段目にするのは「グループ名」ですが、その裏側では常に「GID」が中心となって動いているのです。

3. GIDの種類と割り当てルール

3. GIDの種類と割り当てルール
3. GIDの種類と割り当てルール

GIDの数字には、使い道によっていくつかの決まったルールがあります。これを「予約された番号」と呼びます。一般的なLinuxシステムでは以下のような分け方がされています。

GIDの範囲 役割・種類
0 root(特権ユーザー)用。システムで最も強い権限を持つ特別なIDです。
1 ~ 999 システムグループ用。OSが内部的に使用するプログラムやサービスが利用します。
1000 ~ 一般ユーザー用。私たちが作成する通常のグループに割り当てられます。

初心者の皆さんが新しくグループを作る際は、通常1000番以降の数字が自動的に割り振られます。「0番」は王様のような特別な番号なので、勝手に使うことはできないようになっています。

4. 自分のGIDを確認してみよう

4. 自分のGIDを確認してみよう
4. 自分のGIDを確認してみよう

実際に自分がどのグループに属していて、そのGIDが何番なのかを確認してみましょう。これにはidというコマンドを使います。黒い画面(ターミナル)を開いて、以下のコマンドを入力してみてください。


id
uid=1000(taro) gid=1000(taro) groups=1000(taro),27(sudo),46(plugdev)

表示された結果の中にgid=1000(taro)という部分がありますね。これが、あなたのメイングループ(プライマリグループ)のIDです。括弧の中にはグループ名が表示されています。

また、groups=...のあとには、あなたが所属しているすべてのグループが表示されます。Linuxでは、一人のユーザーが複数のグループ(部活動の兼部のようなイメージ)に所属することができるため、複数のGIDが表示されることが一般的です。

5. ファイルの所有権とGIDの関係

5. ファイルの所有権とGIDの関係
5. ファイルの所有権とGIDの関係

GIDの最も重要な役割は、ファイルのアクセス制限(パーミッション)です。Linux上のすべてのファイルやフォルダには、「どのユーザーのものか」という所有者の情報と、「どのグループのものか」という所有グループの情報がセットになっています。

例えば、あるファイルの所有グループが「1001番(developers)」に設定されているとします。すると、GIDが1001番のグループに所属している人だけがそのファイルを読んだり、編集したりできるように設定することが可能です。これにより、チーム内では共有したいけれど、他のチームの人には見せたくない、といった機密情報の保護が実現できます。

ファイルの詳細を確認するls -lコマンドを使うと、そのファイルの所有グループを名前で確認できますが、システム内部ではここでもGIDが照合されています。

6. /etc/groupファイルの中身を見てみる

6. /etc/groupファイルの中身を見てみる
6. /etc/groupファイルの中身を見てみる

Linuxシステムにあるグループの一覧と、それぞれのGIDがどのように紐付いているかは、/etc/groupというファイルに保存されています。中身を覗いてみると、仕組みがより明確になります。以下のコマンドで最初の方だけを表示してみましょう。


head -n 5 /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,taro

このファイルは「:(コロン)」で区切られており、左から「グループ名」「パスワード(通常はx)」「GID」「所属するユーザー名」という順番で並んでいます。例えば一番上の行を見ると、rootというグループのGIDが0であることがはっきりと分かりますね。

このように、テキストファイルとして設定が保存されているのがLinuxの特徴です。直接このファイルを編集することは稀ですが、ここにすべてのGIDの定義が記されているということを知っておくだけでも、理解がぐっと深まります。

7. 新しいグループを作成してGIDを指定する

7. 新しいグループを作成してGIDを指定する
7. 新しいグループを作成してGIDを指定する

通常、グループを作成するとGIDは自動で決まりますが、手動で番号を指定することもできます。ここでは管理者(root)の権限を使って、特定のGIDを持つグループを作ってみましょう。groupaddコマンドを使います。


groupadd -g 2000 myteam
grep "myteam" /etc/group
myteam:x:2000:

-g 2000というオプションを付けることで、GIDを2000番に指定して「myteam」というグループを作成しました。grepコマンドで確認すると、指定通り2000番で登録されていることが確認できます。

なぜ手動で指定する必要があるのかというと、複数のサーバーを運用する場合などに、サーバー間で「このグループは2000番」と番号を統一しておかないと、データの移行時に誰のファイルか分からなくなってしまうトラブルを防ぐためです。プロの現場では、このGIDの管理はとても慎重に行われます。

8. プライマリグループとサブグループの違い

8. プライマリグループとサブグループの違い
8. プライマリグループとサブグループの違い

先ほどのidコマンドの説明で少し触れましたが、GIDには大きく分けて2つの役割があります。ここを混同しないように整理しておきましょう。

  • プライマリグループ(主グループ): ユーザーがログインした直後に所属しているメインのグループです。新しくファイルを作成したとき、そのファイルの所有グループは自動的にこのGIDになります。
  • サブグループ(補助グループ): 複数のプロジェクトに参加する場合など、追加で所属するグループです。特定のフォルダにアクセスするためだけに一時的に加入するようなイメージです。

ユーザーがどのGIDをメインに持ち、どのGIDを補助として持っているかによって、できることが変わってきます。例えば、「人事部(プライマリ)」に所属しながら「社内イベント実行委員会(サブ)」にも所属するといった使い分けがされています。

9. GIDを変更する場合の注意点

9. GIDを変更する場合の注意点
9. GIDを変更する場合の注意点

もし既存のグループのGIDを変更したい場合は、groupmodコマンドを使用します。しかし、これは初心者の方には少し注意が必要です。


groupmod -g 3000 myteam
tail -n 1 /etc/group
myteam:x:3000:

コマンド自体は簡単ですが、GIDを変更すると、それまでに「GID 2000」の持ち物として作られたファイルの所有権が迷子になってしまいます。システムは名前ではなくGIDで判断しているため、IDが変わると「前の2000番って誰?」となってしまうのです。

そのため、GIDの変更を行った後は、古いIDがついているファイルの所有権を新しいIDに書き換える作業もセットで行う必要があります。Linuxの世界では、番号一つが非常に重い意味を持っていることがよく分かりますね。

10. GIDに関するまとめと次のステップ

10. GIDに関するまとめと次のステップ
10. GIDに関するまとめと次のステップ

これまで見てきたように、GID(グループID)はLinuxのユーザー管理において欠かせない「整理整頓のルール」です。単なる数字の羅列ではなく、セキュリティを守り、チームでの作業を円滑にするための大切な役割を担っています。

最初は難しく感じるかもしれませんが、「Linuxの中ではグループは数字で管理されている」「その数字でファイルの閲覧制限をかけている」という2点だけを覚えておけば、初心者としては合格点です。これからはls -lidコマンドを使ったときに、表示される数字を少しだけ意識してみてください。

グループの仕組みが分かると、次は「権限(パーミッション)」についても理解しやすくなります。Linuxの操作に慣れてきたら、ぜひ自分の思い通りにアクセス制限をかけられるように練習してみましょう。

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.3
Java&Spring記事人気No3
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.5
Java&Spring記事人気No5
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
ELB(ロードバランサー)
AWSのNetwork Load Balancer(NLB)の特徴と使い方を解説!初心者向けロードバランサー入門