LinuxにおけるUser: nobodyとはだれか?

Linux general 1/N

公開日: 2022-09-06
更新日: 2024-06-30

  Table of Contents

LinuxにおけるUser & Group

Linuxでは大きく分けるとユーザーは以下3つあります

ユーザー区分 説明
スーパーユーザー システム唯一の特権ユーザー,すべてのアクセス制御を無視することができる
ユーザー名: root, ユーザーid: 0と決まっている
システムユーザー 各種サーバープログラムやシステムプログラムの実行に利用されるユーザー
ユユーザーIDは主に1~99の範囲で割り当てられる
一般ユーザー システムの一般利用者
ユーザーIDは1000以降が割り当てられる(初めてのユーザーなら1000)

root以外のuid1000未満のアカウントはデーモンやディレクトリの所有者として利用するシステムアカウントとして用意されています.そのため,100未満のUIDについてシステムによって静的に割り当てられるべきであり,アプリケーションによって作成されるべきではない範囲であると理解できます.一方,100 から 499 は,システム管理者やインストール後のスクリプトが useradd を使用して動的に割り当てるために予約された領域となります.

一般ユーザーのリストを取得したい場合は,

  • 一般ユーザーは1000以上
  • 65535はnobodyに予約されている
  • ユーザー情報は /etc/passwdファイルに記録されている

以上の3点を踏まえて,以下のようなスクリプトで確認することができます.

1
2
3
4
5
## usernameのみ出力
% awk -F':' '{ if ($3 >= 1000 && $1 != "nobody") print $1; }' /etc/passwd

## comma-separatedでuidと合わせて出力
% awk -F':' '{ if ($3 >= 1000 && $1 != "nobody") print $1","$3 }' /etc/passwd

代表的なユーザー一覧

User Group Comments
root root スーパーユーザー
bin bin Legacy applicationとの互換性を持たせるためのユーザー,基本的には使用されない
daemon daemon daemon用のLegacy UID/GUID
lp lp Printer special privileges
sync sync Login to sync the system
shutdown shutdown Login to shutdown the system
halt halt Login to halt the system
mail mail Mail special privileges
news news News special privileges
uucp uucp UUCP special privileges
man man Man special privileges
nobody nobody Used by NFS

nobodyとは誰か?

Def: Unix systemにおけるnobody

  • nobodyに対して,一般的にはuid 65534が割り当てられている
  • NFS(Network File System)サーバーがクライアントから提供されたUIDやGIDを信頼できない場合,またはroot-squashオプションが使用されている場合に使用される
  • 基本的にはNFS用に用意されたユーザー

注意点として,ネットワークを通じてコンピューター間でファイルを共有するNFS用のユーザーであってその他の目的で使用されることは想定されていません.「nobodyを信頼できないプログラムの実行や信頼できないデータの処理に使用すること」は推奨されません.「あくまで,サービスには専用のユーザーアカウントを持たせるべき」というルールを忘れないようにしましょう.

/etc/shadowファイルを見てみると第2フィールドであるpasswordカラムが*と表現されています

1
2
% sudo cat /etc/shadow | grep nobody
nobody:*:11111:0:99999:7:::

これnobodyユーザーはパスワードが設定されていないことを意味します.

Column: 65535について

  • 65535は16bit符号なし整数で表すことのできる一番大きな数字
  • 16進数だとFFFFとして表現される
  • 以下のように初めの4つのフェルマー数の積で表現できる特徴がある
\[65535 = (2 + 1)(4+1)(16+1)(256+1)\]

References



Share Buttons
Share on:

Feature Tags
Leave a Comment
(注意:GitHub Accountが必要となります)