web-dev-qa-db-ja.com

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

私は*プライマリアドミンユーザーに501のユーザーIDが付与され、以降のユーザーには増分番号(502503、…)が付与されることを理解しました*。しかし、なぜ50150xの何が特別で、この選択の歴史的/技術的理由は何ですか?

*外付けハードドライブのすべてのゴミ箱にあるファイルが.Trashes/501内にある理由を知りたくて、これを調べ始めました。検索の結果、501は* nixシステム(私はmacOSを使用しています)のプライマリ管理者のユーザーIDですが、whyではありません。

11
user137369

多くのUnixシステムは、特定の数のユーザーにUIDの配布を開始します。 Solarisは最初の汎用ユーザーUID 100を提供します。OpenBSDでは1000です。macOSでは、最初に作成された対話型ユーザーのUIDであるUID 501と思われます。これは、おそらくmacOS管理ユーザーでもあります(同じではありません)。 rootユーザーとして)。

数字の小さいアカウントは、デーモンなどのシステムユーザーアカウントです。これにより、インタラクティブな「人間の」アカウントとシステムサービスアカウントを簡単に区別できます。これにより、さまざまなソフトウェアでのユーザー管理、認証なども容易になります。 YP/NIS 、複数のクライアントマシンでローカルユーザーを作成する必要なしに中央サーバーにユーザーアカウント(およびその他の情報)を保持するための少し古いシステム。たとえば、MINUIDおよびMAXUIDが処理するユーザーアカウントの範囲の設定。

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

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

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

(UID 0が常にrootである(またはそうでない)に関するコメントを参照してください。これは、このトピックから少し離れています)


更新:OpenBSDプロジェクト 最近拒否されました UID/GID割り当てをランダム化するアイデア。

21
Kusalananda

[〜#〜] lsb [〜#〜] に続くディストリビューションの場合、UIDおよびGID 0〜99を静的に割り当てます。 UID 100〜499は動的に割り当てられますが、これらもシステム用であり、ログインアカウント用ではありません。

たとえば、cupsのような印刷デーモンには、独自のユーザーアカウントが割り当てられる傾向があります。したがって、デーモンの脆弱性が悪用された場合、デーモンはrootとしてシステム上でフルパワーで実行されていません。 (また、他のデーモンに干渉する力もありません)。

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

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

Debianにはさらにstatic割り当てがあります UIDGID100。ただし、この偏差が特定の問題を引き起こすことは想像できません。

UID 500を追加で予約する、1つずれる偏差のある別のシステムを想像するのは簡単です(これはまだ準拠していると思います。更新中です)。

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

8
sourcejedi