Warum ist die primäre Administrator-UID 501?


11

Ich verstehe , * der primären Admin - Benutzer einen Benutzer - ID angegeben wird 501und nachfolgende Benutzer erhalten inkrementelle Zahlen ( 502, 503, ...). Aber warum 501? Was ist das Besondere daran 50x, was ist der historische / technische Grund für diese Wahl?

* Ich begann mich damit zu beschäftigen, als ich neugierig wurde, warum auf meiner externen Festplatte alle Papierkorbdateien gespeichert waren .Trashes/501. Meine Suche führte mich zu dem Schluss, dass 501die Benutzer-ID für den primären Administrator in * nix-Systemen (ich bin auf macOS) nicht der Grund ist .


7
Ich dachte, die UID des primären Administrators wäre 0!
Jeff Schaller

Antworten:


21

Viele Unix-Systeme verteilen UIDs an Benutzer unter einer bestimmten Anzahl. Solaris gibt dem ersten Allzweckbenutzer die UID 100, unter OpenBSD 1000 und unter macOS die UID 501, die die UID für den ersten erstellten interaktiven Benutzer ist, bei dem es sich wahrscheinlich auch um einen MacOS-Administrator handelt (der nicht derselbe ist) als Root-Benutzer).

Die Konten mit niedrigeren Nummern sind Systembenutzerkonten für Dämonen usw. Dies erleichtert die Unterscheidung interaktiver "menschlicher" Konten von Systemdienstkonten. Dies kann auch die Benutzerverwaltung, Authentifizierung usw. in verschiedenen Softwareprogrammen vereinfachen. YP / NIS , ein etwas veraltetes System für Benutzerkonten zu halten (und andere Informationen) auf einem zentralen Server ohne lokale Benutzer auf mehreren Client - Rechnern zu schaffen, zum Beispiel, hat eine MINUIDund MAXUIDfür den Bereich der Benutzereinstellung Konten , die damit umgehen soll.

Auf einigen Unices kann eine Reihe von Systemdienstkonten Software von Drittanbietern zugewiesen werden, z. B. die UIDs 50 bis 999 unter FreeBSD oder 500 bis 999 unter OpenBSD.

Alle diese Bereiche werden von den Herstellern und Betreuern der einzelnen Unices entsprechend den erwarteten Anforderungen ihres Betriebssystems ausgewählt. Der POSIX-Standard sagt nichts über diese Dinge aus. Die niedrigste und höchste zuweisbare UID (und GID) kann häufig von einem lokalen Administrator konfiguriert werden (siehe adduserHandbuch).

Die meisten Unices reservieren UID 0 für rootden Superuser und weisen dem Benutzer die höchstmögliche UID (oder zumindest einen hohen Wert) zu nobody(Solaris verwendet UID 60001, OpenBSD verwendet 32768, UIDs können jedoch viel größer sein).

(Siehe Kommentare zu UID 0 immer root(oder nicht), was ein kleiner Exkurs von diesem Thema ist.)


Update: Das OpenBSD-Projekt hat kürzlich die Idee der Randomisierung der UID / GID-Zuordnung abgelehnt .


Beachten Sie auch, dass dies lediglich KONVENTIONEN sind. In Unix- und Unix-ähnlichen Systemen ist eine UID von Natur aus nicht magisch. Root könnte willkürlich eine UID von 65535 erhalten und der erste interaktive Benutzer könnte als UID 0 zugewiesen werden.
Doug R.

@ DougR. Möglicherweise, aber es würde sehr wahrscheinlich eine Reihe vorhandener Software-Teile beschädigen. POSIX neigt dazu zu sagen, dass ein Prozess "entsprechende Berechtigungen" benötigt, kein Benutzer . Siehe auch die Definition von "geeigneten Berechtigungen" (in der UID 0 auf einigen Systemen als "Superuser" erwähnt wird): pubs.opengroup.org/onlinepubs/9699919799/xrat/…
Kusalananda

Das Privileg über den Benutzer war der Punkt meines Kommentars, auch wenn ich es nicht so klar ausgedrückt habe wie Sie es gerade getan haben. Die einzige Software, die kaputt gehen sollte, ist Software, deren UID in einem bestimmten Bereich liegt. Ich bin mir nicht sicher, was, wenn überhaupt, das tut.
Doug R.


8

Für Verteilungen, die dem LSB folgen , weisen sie UIDs und GIDs 0-99 statisch zu. Die UIDs 100-499 werden dynamisch zugewiesen, diese gelten jedoch auch für das System und nicht für Anmeldekonten.

Druckdämonen wie beispielsweise wird cupsin der Regel ein eigenes Benutzerkonto zugewiesen. Wenn also eine Sicherheitsanfälligkeit im Daemon ausgenutzt wird, wird der Daemon nicht wie rootbei voller Leistung über das System ausgeführt. (Es hat auch nicht unbedingt die Macht, andere Dämonen zu stören).

Bei neueren Linux-Distributionen wird der Systembereich auf 999 erweitert.

Dies würde UIDs 500 nach oben (oder 1000 nach oben) für Anmeldekonten belassen.

Debian hat zusätzlich eine statische Zuordnung fürUIDGID 100, obwohl ich mir nicht vorstellen kann, dass diese Abweichung ein bestimmtes Problem verursacht.

Es ist leicht vorstellbar, dass ein anderes System eine Abweichung von eins zu eins aufweist, das zusätzlich UID 500 reserviert. (Ich gehe davon aus, dass dies immer noch konform ist. Ich kann mir nicht vorstellen, dass alle Linux-Benutzer das LSB so lange verletzt haben, ohne es wird aktualisiert).

Das erste Anmeldekonto muss weder ein Administratorkonto noch das primäre Administratorkonto sein. Systeme verwenden nicht unbedingt sudo(insbesondere wenn sie es vorab datieren :). Sie könnten sagen, rootdass sich in diesem Fall das "primäre Administratorkonto" befindet . Abgesehen davon erkennen * nix- und Allzweck-Linux-Distributionen kein bestimmtes "primäres Administratorkonto".


Ich bin mir nicht sicher, warum Sie über Linux sprechen, wenn OP speziell nach Mac OS X fragt.
Ein Lebenslauf vom

> vor 7 Stunden bearbeitet> in * nix-Systemen
sourcejedi

4
On more recent Linux distributions, the system range is extended up to 999.- Ich hatte immer eine Benutzer-ID ab 1000 und begann 2005 mit der Verwendung von Linux. Ich würde es nicht als "aktuell" bezeichnen.
Mirek Długosz

Was lässt Sie denken, dass 100 unter Debian statisch ist? Wenn ich mir einige meiner Systeme anschaue, sieht es für mich dynamisch aus (auf einem war es systemd-timesync, auf einem anderen war es sshd).
Plugwash

Als die Frage um 12:22 UTC bearbeitet wurde, fügte das OP das [osx] -Tag zusammen mit der Erwähnung von OS X im Fragenkörper hinzu. Ihre Antwort wurde zehn Minuten später veröffentlicht und scheint dies überhaupt nicht zu berücksichtigen.
Ein Lebenslauf
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.