プライマリ管理者の UID が 501 なのはなぜですか?

プライマリ管理者の UID が 501 なのはなぜですか?

プライマリ管理者ユーザーには のユーザー ID が与えられ501、後続のユーザーには増分番号 ( 502503、…) が与えられることは理解しています。しかし、なぜ なの501でしょうか? の何が特別なのでしょうか。50xこの選択の歴史的/技術的な理由は何ですか?

* 外付けハードドライブにゴミ箱の中のファイルがすべて保存されている理由が気になって、この件について調べ始めました。調べた結果、*nixシステム(私はmacOSを使用しています)のプライマリ管理者のユーザーIDが原因だという.Trashes/501結論に至りましたが、501なぜ

答え1

多くの Unix システムでは、特定の番号からユーザーに UID を配布し始めます。Solaris では最初の汎用ユーザーに UID 100 が付与され、OpenBSD では 1000、macOS では最初に作成された対話型ユーザーの UID は UID 501 になるようです。この対話型ユーザーはおそらく macOS 管理者ユーザー (ルート ユーザーとは異なります) でもあります。

番号が小さいアカウントは、デーモンなどのシステム ユーザー アカウントです。これにより、対話型の「人間」アカウントとシステム サービス アカウントを区別しやすくなります。また、さまざまなソフトウェアでユーザー管理や認証などが容易になります。YP/NISたとえば、複数のクライアント マシンにローカル ユーザーを作成することなく、ユーザー アカウント (およびその他の情報) を中央サーバー上に保持する、やや時代遅れのシステムには、処理するユーザー アカウントの範囲を設定するMINUIDMAXUID設定があります。

一部の Unix では、FreeBSD の UID 50 から 999、OpenBSD の UID 500 から 999 など、システム サービス アカウントの範囲がサードパーティ ソフトウェアに割り当てられることがあります。

これらの範囲はすべて、各 Unix のメーカーと保守担当者が、オペレーティング システムの予想されるニーズに応じて選択します。POSIX 標準では、これらのことについては何も述べられていません。割り当て可能な最低および最高の UID (および GID) は、多くの場合、ローカル管理者によって構成できます (マニュアルを参照してくださいadduser)。

ほとんどのUnixでは、UID 0をrootスーパーユーザー用に予約し、可能な限り高いUID(または少なくとも高い値)をユーザーに割り当てますnobody(SolarisではUID 60001、OpenBSDでは32768を使用しますが、UIDは多くのそれより大きいです。

(UID 0 が常に存在するrootかどうかについてのコメントを参照してください。これはこのトピックから少し逸脱しています)


アップデート: OpenBSD プロジェクト最近拒否されたUID/GID の割り当てをランダム化するという考え方。

答え2

以下のディストリビューションについては、LSb の、UID と GID 0 ~ 99 は静的に割り当てられます。UID 100 ~ 499 は動的に割り当てられますが、これもシステム用であり、ログイン アカウント用ではありません。

たとえば、 のような印刷デーモンには、cups独自のユーザー アカウントが割り当てられる傾向があります。そのため、デーモンの脆弱性が悪用された場合、デーモンはrootシステムに対して完全な権限を持って実行されるわけではありません (他のデーモンに干渉する権限が必ずしもあるわけではありません)。

最近の Linux ディストリビューションでは、システム範囲は最大 999 まで拡張されています。

これにより、ログイン アカウントには UID 500 以上 (または 1000 以上) が残ります。

Debianにはさらに静的割り当てユーザIDGID 100 ですが、この偏差が特に問題を引き起こすとは考えられません。

1 つずれた別のシステムを想像するのは簡単です。このシステムでは、UID 500 も予約されています。(これはまだ準拠していると思います。すべての Linux が、更新されずにこれほど長い間 LSB に違反していたとは想像できません)。

最初のログイン アカウントは、管理者アカウントでもプライマリ管理者アカウントでもなくてもかまいません。システムでは必ずしも使用されませんsudo(特に、それより前のバージョンの場合)。rootその場合は「プライマリ管理者アカウント」であると言えるかもしれません。それ以外では、*nix および汎用 Linux ディストリビューションは特定の「プライマリ管理者アカウント」を認識しません。

関連情報