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

LinuxのユーザーID(UID)とは?仕組みと役割を初心者向けに徹底解説!

LinuxのユーザーID(UID)とは?仕組みと役割を解説
LinuxのユーザーID(UID)とは?仕組みと役割を解説

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

生徒

「Linuxを使っていると『ユーザー』とか『権限』っていう言葉をよく聞きますが、コンピュータはどうやって人を区別しているんですか?」

先生

「実はLinuxは、私たちの『名前』ではなく『数字』で誰かを判断しているんですよ。その背番号のような数字を『UID(ユーザーID)』と呼びます。」

生徒

「背番号ですか!数字で管理されているなんて、まるで出席番号みたいですね。」

先生

「その通りです。UIDがあるおかげで、自分だけのファイルを安全に守ることができるんです。今日はこの仕組みを詳しく見ていきましょう。」

1. LinuxのユーザーID(UID)の正体とは?

1. LinuxのユーザーID(UID)の正体とは?
1. LinuxのユーザーID(UID)の正体とは?

Linux(リナックス)というOS(パソコンを動かす基本ソフト)において、UID(User Identification)は、システムがユーザーを識別するための「識別番号」です。私たちがパソコンにログインするときは「tanaka」や「sato」といったユーザー名を使いますが、コンピュータの内部では、それらをすべて「1000番」「1001番」といった数値として処理しています。

なぜ名前ではなく数字を使うのでしょうか。それは、コンピュータにとって文字列(名前)よりも数字の方が計算や管理が圧倒的に速く、間違いが起きにくいからです。役所で個人の特定に「マイナンバー」を使うのと似た仕組みだと考えると分かりやすいでしょう。Linuxの世界では、このUIDによって「誰がどのファイルを操作していいのか」というルールが決まっています。

このユーザー管理の仕組みは、複数の人が一台のコンピュータを同時に使う「マルチユーザー」というLinuxの特徴を支える非常に重要な土台となっています。もしUIDがなければ、他人の大切なデータを間違えて消してしまったり、中身を勝手に見られたりするリスクが発生してしまいます。

2. UIDの役割と重要性

2. UIDの役割と重要性
2. UIDの役割と重要性

UIDの最も大きな役割は、「アクセス権限(パーミッション)」の管理です。Linuxにあるすべてのファイルやフォルダには、「これはUID 1000のユーザーが作ったものです」という情報が刻み込まれています。

たとえば、あなたが書いた日記のファイルがあるとします。そのファイルの所有者があなたのUID(例:1000)であれば、あなたはそのファイルを読んだり書き換えたりできます。しかし、別のUID(例:1001)を持つユーザーがそのファイルを開こうとしても、システムが「UIDが一致しないのでダメです」とアクセスを拒否してくれます。これにより、個人のプライバシーやシステムの安全性が保たれているのです。

また、UIDはプロセスの管理にも使われます。「プロセス」とは、パソコンの中で動いているプログラムのことです。誰がそのプログラムを動かしているのかをUIDで追跡することで、特定のユーザーがパソコン全体のメモリを使い果たしてしまわないように制限をかけたり、ウイルスのような不正なプログラムがシステム全体に広がるのを防いだりしています。

3. 自分のUIDを確認してみよう

3. 自分のUIDを確認してみよう
3. 自分のUIDを確認してみよう

実際に自分がどのようなUIDでシステムに認識されているのか、コマンドを使って確認してみましょう。使うコマンドはidコマンドです。このコマンドを入力すると、現在のユーザーに関する情報がずらりと表示されます。

ターミナル(文字を入力する黒い画面)を開いて、以下のコマンドを入力してみてください。


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

実行結果の最初に出てくるuid=1000(testuser)という部分に注目してください。これがあなたのUIDです。括弧の中には、人間が読みやすい「ユーザー名」が表示されています。この例では、システムは「testuser」という名前のユーザーを「1000番」という番号で管理していることがわかります。

この結果には他にもgid(グループID)などの情報が含まれていますが、まずは「uid」という項目が自分自身の背番号であることだけを覚えておけば大丈夫です。パソコンを初めて触る方でも、この数字を見るだけで「自分はシステムにこう認識されているんだな」と実感できるはずです。

4. 特別な存在「rootユーザー」とUID 0

4. 特別な存在「rootユーザー」とUID 0
4. 特別な存在「rootユーザー」とUID 0

Linuxには、どんなことでもできる「神様」のようなユーザーが存在します。それがroot(ルート)ユーザーです。そして、このrootユーザーに割り当てられているUIDは、決まって「0」です。

UID 0を持つユーザーは、システムの全設定を変更でき、他のユーザーが作成したどんな秘密のファイルでも見ることができます。非常に強力な権限を持っているため、普段の作業でrootを使うのはとても危険です。間違ってシステムを壊すコマンドを実行しても、UID 0であればシステムはそれを止めてくれません。そのため、普段は一般ユーザー(UID 1000以降)を使い、設定変更が必要な時だけ一時的にrootの力を使うという運用が一般的です。

rootユーザーとして自分の情報を確認すると、次のように表示されます。一般ユーザーとは表示が異なる点に注目してください。


id
uid=0(root) gid=0(root) groups=0(root)

このように、uid=0と表示されれば、その操作は最高権限で行われていることを意味します。Linuxの学習を始めると「管理者権限で実行してください」という説明によく出会いますが、それは「UID 0の力を使ってください」と言い換えることができます。

5. ユーザー情報の保存場所「/etc/passwd」

5. ユーザー情報の保存場所「/etc/passwd」
5. ユーザー情報の保存場所「/etc/passwd」

「ユーザー名」と「UID(数字)」がどのように紐付けられているのか、その答えはLinuxの中にある特定のファイルに書かれています。それが/etc/passwd(エトセ・パスワード)というファイルです。

このファイルの中身を覗くと、システムに登録されている全ユーザーのリストを見ることができます。catコマンドを使って、ファイルの内容を表示してみましょう(内容は非常に長いので、最初の方だけを表示する例です)。


cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
testuser:x:1000:1000:,,,:/home/testuser:/bin/bash

一行の中に「:(コロン)」で区切られたデータが並んでいますね。一番左が「ユーザー名」、そこから3番目にある数字が「UID」です。例えば、一番上の行は「root」という名前のUIDが「0」であることを示しています。下の方にある「testuser」はUIDが「1000」になっています。

このファイルはシステムにとって非常に重要な地図のようなものです。もしこのファイルが壊れてしまうと、Linuxは「どのユーザーがどの番号なのか」がわからなくなり、ログインすらできなくなってしまいます。初心者のうちは、このファイルを直接書き換えることは絶対に避けましょう。

6. システムユーザーと一般ユーザーの数字の違い

6. システムユーザーと一般ユーザーの数字の違い
6. システムユーザーと一般ユーザーの数字の違い

Linuxでは、UIDの数字の範囲によって役割が分かれています。これを知っておくと、UIDを見ただけでそのユーザーが何者なのかを推測できるようになります。

UIDの範囲 ユーザーの種類 主な役割
0 rootユーザー システム全体の管理者。最強の権限を持つ。
1 ~ 999 システムユーザー OSやソフトが裏側で動くための専用アカウント。
1000 ~ 一般ユーザー 私たちが普段ログインして使うためのアカウント。

「1から999番」までのユーザーは、私たちが直接操作するためではなく、メールを送るプログラムやWebサイトを表示するプログラムなどが、安全に動作するために用意されています。これらをシステムユーザーと呼びます。

一方で、あなたが新しく自分の名前でアカウントを作ると、通常は「1000番」から順番に番号が振られていきます。これは「ここからは人間が使う番号ですよ」という区切りがあるためです。Ubuntu(ウブントゥ)などの有名なLinuxの種類(ディストリビューション)では、この1000番という数字が最初の一般ユーザーの定位置になっています。

7. 新しいユーザーを作成した時のUIDの変化

7. 新しいユーザーを作成した時のUIDの変化
7. 新しいユーザーを作成した時のUIDの変化

実際に新しいユーザーを作成すると、UIDがどのように割り振られるのかを確認してみましょう。ユーザーを追加するにはuseraddコマンドを使います。これには管理者権限が必要なので、先ほど説明したrootの力(sudo)を借ります。


useradd -m new-student
grep "new-student" /etc/passwd
new-student:x:1001:1001::/home/new-student:/bin/sh

新しいユーザー「new-student」を作成した後、/etc/passwdファイルの中身を確認すると、UIDが「1001」になっているのがわかります。先ほどの「testuser」が1000番だったので、システムが自動的に次の空いている番号である1001番を割り当ててくれたのです。このように、Linuxはユーザーが重ならないように、自動で出席番号を更新していく仕組みを持っています。

もし、特定の番号(例えば777番など)をどうしても使いたい場合は、コマンドのオプションを使うことで手動で指定することもできますが、基本的にはシステムにお任せするのが一番安全で確実な方法です。

8. ユーザーを削除するとUIDはどうなる?

8. ユーザーを削除するとUIDはどうなる?
8. ユーザーを削除するとUIDはどうなる?

ユーザーを削除した場合、そのUIDがどうなるのかも知っておきましょう。ユーザーを削除するにはuserdelコマンドを使います。試しに、先ほど作った「new-student」を削除してみます。


userdel new-student
id new-student
id: ‘new-student’: no such user

ユーザーを削除すると、その名前とUIDの紐付けは消えてしまいます。しかし、ここで注意が必要なのは、そのユーザーが残した「ファイル」です。ファイルには「UID 1001が作った」という情報が残っています。もし後から別の新しいユーザーを作って、たまたま同じUID 1001が割り振られてしまうと、その新しいユーザーは「前の人が残したファイル」を自分のものとして操作できてしまう可能性があります。

これを防ぐために、大規模なサーバー運用では「一度使ったUIDは二度と使わない」といったルールを決めたり、ユーザーを消す時にその人のファイルもすべて一緒に消去したりする設定を行います。UIDは単なる数字ですが、データの持ち主を決める非常にデリケートな情報なのです。

9. UIDとグループID(GID)の関係

9. UIDとグループID(GID)の関係
9. UIDとグループID(GID)の関係

UIDとセットでよく登場するのがGID(Group Identification)、つまりグループIDです。UIDが「個人」を識別する番号であるのに対し、GIDは「チーム」を識別する番号です。

例えば、「開発チーム」や「営業チーム」といったグループを作り、特定のフォルダを「開発チームのGIDを持つ人だけが見られる」ように設定することができます。一人のユーザーは必ずどこかのグループに所属しており、通常は自分のUIDと同じ番号のグループ(プライマリグループ)に自動的に所属します。

Linuxのセキュリティはこの「UID(誰か)」と「GID(どのチームか)」という2つの数字を組み合わせて、「このファイルは、作成者の田中さん(UID 1000)は見れるし、同じ開発チーム(GID 1000)の人たちも読めるけど、それ以外の人は一切触らせない」といった細かいルールを実現しています。プログラミング未経験の方でも、会社で「自分の部署のフォルダには入れるけど、他の部署のフォルダは見られない」という経験があれば、それと同じことがLinux内部で数字によって行われているとイメージできるはずです。

10. まとめ:UIDを理解してLinuxマスターへの第一歩

10. まとめ:UIDを理解してLinuxマスターへの第一歩
10. まとめ:UIDを理解してLinuxマスターへの第一歩

ここまで、LinuxのユーザーID(UID)について詳しく解説してきました。一見難しそうな数字の羅列も、その役割を知れば非常に理にかなった仕組みであることがわかります。最後に、UIDについて学んだ大切なポイントを振り返ってみましょう。

まず、UIDはシステムがユーザーを管理するための「背番号」であること。人間には名前で見せて、コンピュータ内部では計算しやすい数字で処理しています。次に、UID 0は「root」という特別な管理者であること。そして、1000番以降が私たち一般ユーザーに割り当てられる数字であること。これらを知っているだけで、Linuxのコマンド操作やエラーメッセージの意味がずっと理解しやすくなります。

プログラミングやパソコン操作に慣れていない方にとって、ターミナルの操作は少し怖く感じるかもしれません。しかし、今回のように「数字で管理されている」という背景を知ることで、中身がブラックボックスではなく、論理的なルールで動いていることが見えてきたのではないでしょうか。UIDの仕組みを理解したあなたは、すでにLinuxの基本的な管理概念をマスターしたと言っても過言ではありません。この知識を土台にして、次はファイルを操作する権限やグループ管理についても学んでみてください。

カテゴリの一覧へ
新着記事
New1
RDS(データベース)
AWS RDSのメンテナンスウィンドウの設定方法を解説!初心者でもできるクラウドデータベースの管理
New2
Direct Connect(専用線接続)
AWS Direct Connectのルーティング設計(BGP設定の基本)を初心者向けにやさしく解説
New3
S3(オブジェクトストレージ)
AWS S3のデータ保護(オブジェクトロック・WORM設定)を初心者向けにやさしく解説
New4
ファイル・ディレクトリ構造
Linuxのディレクトリ構造を徹底解説!/bin・/sbin・/usrの違いと役割を初心者向けに解明
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.3
Java&Spring記事人気No3
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.4
Java&Spring記事人気No4
プロセス・ジョブ管理
LinuxのプロセスID(PID)とは?仕組みと管理方法を初心者向けに徹底解説
No.5
Java&Spring記事人気No5
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.6
Java&Spring記事人気No6
ファイル・ディレクトリ構造
Linuxの/homeディレクトリとは?役割と構造を初心者向けに徹底解説!
No.7
Java&Spring記事人気No7
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.8
Java&Spring記事人気No8
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策