このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linux基礎:ユーザー名とユーザーID・ユーザーの種類

ユーザー名とユーザーID・ユーザーの種類
Linuxシステムは複数のユーザーが同時に利用できるマルチユーザーOSです。そのため、システム上で作業を行うすべての人やプログラムは「ユーザーアカウント」として識別されます。ユーザーアカウントは ユーザー名(login name) と ユーザーID(UID: User ID) によって管理されます。
ユーザー名は人間が識別しやすい名前ですが、システム内部ではUIDが決定的な識別子として利用されます。また、ユーザーには役割や用途に応じて複数の種類があり、システム管理に不可欠な rootユーザー、サービス動作用の システムユーザー、日常利用する 一般ユーザー に分けられます。
本記事では、ユーザー名とUIDの関係、そしてユーザーの種類について、実際のコマンド例を交えながら解説します。

1.ユーザー名とユーザーID
1.1. UIDの確認
Linuxではユーザーごとに固有のUIDが割り当てられ、システム内部の識別に用いられます。UIDを調べるには id コマンドを使用します。
書式
id [ユーザー名]【例1】現在ログイン中のユーザー情報を確認
[user@rocky9 ~]$ id
uid=1000(user) gid=1000(user) groups=1000(user),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023【例2】特定のユーザー(例:tanaka)の情報を確認
まず、ユーザー「tanaka」を作成しておきます。
[user@rocky9 ~]$ sudo useradd tanaka
[sudo] user のパスワード:
[user@rocky9 ~]$ sudo passwd tanaka
ユーザー tanaka のパスワードを変更。
新しい パスワード:
正しくないパスワード: このパスワードは辞書チェックに失敗しました - 辞書の単語に基づいています
新しい パスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。tanaka ユーザーの情報を確認します。
[user@rocky9 ~]$ id tanaka
uid=1001(tanaka) gid=1001(tanaka) groups=1001(tanaka)→ UIDが1000のアカウントがuser、UID1001がtanakaであることが確認できます。
1.2. /etc/passwdファイルとUID
ユーザー名とUIDの対応関係は /etc/passwd ファイルに記録されています。1行につき1ユーザーアカウントの情報が管理されています。
【例3】/etc/passwd を確認する
次のコマンドを実行します。
[user@rocky9 ~]$ less /etc/passwd/etc/passwd の一部抜粋
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/haltここでは、ユーザー名・UID・ホームディレクトリ・ログインシェルなどが定義されていることがわかります。
2.ユーザーの種類
Linuxには、用途や権限によって次のような種類のユーザーがあります。
2.1. rootユーザー(管理者ユーザー)
- UIDが 0 に固定されている特別なアカウント
- システム全体の制御権限を持つ。
- Windowsでの Administrator に相当
- システム設定変更やソフトウェアのインストールに使用
2.2. システムユーザー
- UIDが 1〜999 の範囲に割り当てられることが多い。
- サービスやデーモン(例:
apache,mysql)の実行に使われる。 - 通常ログインには利用されない。
- セキュリティとプロセス管理のために存在
2.3. 一般ユーザー
- UIDが 1000以上(Rocky Linux など多くのディストリビューションでの初期設定)
- 実際に人がログインして利用するためのアカウント
- ホームディレクトリ
/home/ユーザー名が割り当てられる。 - 通常のファイル操作やプログラム実行は可能だが、システム全体の変更はできない。
2.4. ユーザー種類とUID対応表
| ユーザーの種類 | UID範囲 | 役割 |
|---|---|---|
| rootユーザー | 0 | システム管理者、全権限を持つ |
| システムユーザー | 1〜999 | サービス・デーモン実行用アカウント |
| 一般ユーザー | 1000以上 | ログインして日常利用するユーザー |
→ UIDの割り当てはディストリビューションによって細かく異なる場合がありますが、基本的な考え方は共通です。
3.補足:ユーザー切り替え
Linuxでは、現在のセッションを終了せずに別のユーザーに切り替えることが可能です。その代表的な方法が su コマンドです。
書式
su [ユーザー名]【例4】root ユーザーに切り替え
[user@rocky9 ~]$ su -
Password:
[root@rocky9 ~]#→ - を付けることでログインシェルとして環境を引き継げます。
まとめ
- Linuxではユーザー名とともにUIDが必ず割り当てられ、UIDによってシステム内部で識別される。
- UID 0 は rootユーザー、1〜999は システムユーザー、1000以上は 一般ユーザー に割り当てられる。
/etc/passwdにユーザー情報が記録されており、idコマンドで確認できる。suコマンドを使えばログアウトせずに別のユーザーとして作業できる。
