0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ユーザの種類

Linuxにおいて、ユーザはsystem usernormal userの2種類に分けることができます。

system user

人間が直接ログインするためのユーザではなく、デーモンプロセスやサービスの実行のために使われるユーザです。
nginxのwoker processを実行する際に慣習的に使われるwww-dataや、mysqldを実行する際に使われるmysqlなどがこれに該当します。

normal user

人間が対話的に使用する際に使うユーザです。

カーネルから見たユーザ

ユーザはwww-data, mysqlなどのユーザ名を持っていますが、カーネルはこのユーザランドで使われているユーザ名を認識していません。
カーネルが認識しているのは、ユーザID(UID)です。

このUIDはユーザの種類によって割り当てられる範囲が決まっています。
割り当ての範囲は、ディストリビューションによって異なります。

例としてsystemdのドキュメントを参照すると、以下のようなUIDの範囲の割り当てになっています。

  • 0
    • root user
  • 1…999
    • system user
  • 1000…65533, 65536…4294967294
    • normal user
  • 65534
    • nobody user

カーネルはユーザ名を認識していないため、ユーザランドからカーネルとやりとりする際にはUIDを特定する必要があります。

/etc/passwd

ユーザ名とUIDを対応づけているファイルが/etc/passwdです。
ユーザ名とUIDを1:1で対応づけているのではなく、その他のメタ情報も含まれます。

ファイルの中身は以下のようになっています。

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
# ...
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
# ...
tsuzuki-takaaki:x:1000:1000:tsuzuki takaaki:/home/tsuzuki-takaaki:/bin/bash

各レコードが1ユーザを表しており、1レコードに7つのフィールドが含まれています。
各フィールドは以下を意味します。

<username>:<password>:<UID>:<GID>:<real_name>:<home_dir>:<shell>
  • username: ユーザ名
  • password: パスワード
    • xが入っていますが、ここに平文でパスワードが保存されることはほとんどなく、/etc/shadowに暗号化されて保存されます。
  • UID
  • GID: グループID
  • real_name: フルネームや連絡先
  • home_dir: 対象ユーザのホームディレクトリ
  • shell: シェル
    • loginを許可しない、システムユーザなどは/usr/sbin/nologinが指定されます。

/etc/group

/etc/passwdでユーザが管理されている一方で、/etc/groupでは、グループが管理されています。

$ cat /etc/group
root:x:0:
daemon:x:1:
# ...
sudo:x:27:tsuzuki-takaaki
# ...

フィールドが4つ含まれており、フォーマットは以下です。

<groupname>:<password>:<GID>:<other_member>

新たなユーザを追加するごとに、そのユーザと同名のグループが自動的に追加されます。
仮にhogeという名前のユーザを追加すると、デフォルトでhogeという名前のグループが作成されて、そのグループに属することになります。

root@bc9413b0bcf2:/# adduser hoge
info: Adding user `hoge' ...
info: Selecting UID/GID from range 1000 to 59999 ...
info: Adding new group `hoge' (1001) ...
info: Adding new user `hoge' (1001) with group `hoge (1001)' ...
info: Creating home directory `/home/hoge' ...
info: Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for hoge
Enter the new value, or press ENTER for the default
        Full Name []: hoge
        Room Number []: 999
        Work Phone []: 999
        Home Phone []: 999
        Other []: 999
Is the information correct? [Y/n] y

root@bc9413b0bcf2:/# tail -n 1 /etc/passwd
hoge:x:1001:1001:hoge,999,999,999,999:/home/hoge:/bin/bash
root@bc9413b0bcf2:/# tail -n 1 /etc/group
hoge:x:1001:

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?