このページで解説している内容は、以下の 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 コマンドを使えばログアウトせずに別のユーザーとして作業できる。