Dlaczego główny identyfikator administratora UID 501?

11

Rozumiem * użytkownik podstawowy Administrator otrzymuje identyfikator użytkownika 501i kolejni użytkownicy uzyskać numery przyrostowych ( 502, 503...). Ale dlaczego 501? Co jest specjalnego 50x, jaki jest historyczny / techniczny powód tego wyboru?

* Zacząłem się tym zajmować, kiedy zacząłem się zastanawiać, dlaczego w moim zewnętrznym dysku twardym są wszystkie swoje pliki .Trashes/501. Moje wyszukiwanie doprowadziło mnie do wniosku, że 501jest to identyfikator użytkownika głównego administratora w systemach * nix (jestem na macOS), ale nie dlaczego .

użytkownik137369
źródło
7
Myślałem, że identyfikator UID głównego administratora to 0!
Jeff Schaller

Odpowiedzi:

21

Wiele systemów uniksowych zaczyna rozdawać identyfikatory UID użytkownikom o określonej liczbie. Solaris da pierwszemu użytkownikowi ogólnego przeznaczenia UID 100, na OpenBSD jest to 1000, a na macOS wydaje się, że to UID 501, który będzie UID dla pierwszego utworzonego interaktywnego użytkownika, który jest również prawdopodobnie administratorem macOS (który nie jest taki sam jako użytkownik root).

Konta o niższych numerach są kontami użytkowników systemu dla demonów itp. Ułatwia to odróżnianie interaktywnych kont „ludzkich” od kont usług systemowych. Może to również ułatwić zarządzanie użytkownikami, uwierzytelnianie itp. W różnych programach. YP / NIS , nieco przestarzały system utrzymywania kont użytkowników (i inne informacje) na centralnym serwerze bez konieczności tworzenia lokalnych użytkowników na wielu komputerach klienckich, na przykład, ma MINUIDi MAXUIDustawienie zakresie kont użytkowników, które powinny obsługiwać.

W niektórych Uniksach zakres kont usług systemowych może być przypisany do oprogramowania innych firm, takiego jak UID od 50 do 999 w FreeBSD lub od 500 do 999 w OpenBSD.

Wszystkie te zakresy są wybierane przez twórców i opiekunów poszczególnych Unices zgodnie z oczekiwanymi potrzebami ich systemu operacyjnego. Standard POSIX nie mówi nic o tych rzeczach. Najniższy i najwyższy możliwy do przydzielenia identyfikator UID (i GID) jest często konfigurowany przez lokalnego administratora (patrz adduserinstrukcja).

Większość Uniksów rezerwuje UID 0 dla rootsuperużytkownika i przypisuje najwyższy możliwy UID (lub przynajmniej pewną wysoką wartość) użytkownikowi nobody(Solaris używa UID 60001, OpenBSD używa 32768, ale UID mogą być znacznie większe).

(Zobacz komentarze o tym, że UID 0 zawsze jest root(lub nie), co jest lekką dygresją w tym temacie)


Aktualizacja: Projekt OpenBSD niedawno odrzucił pomysł losowego przydzielania UID / GID.

Kusalananda
źródło
Zauważ też, że są to jedynie KONWENCJE. W systemach Unix i systemach uniksowych UID nie ma z natury nic magicznego. Root można dowolnie przypisać UID 65535, a pierwszemu użytkownikowi interaktywnemu można przypisać UID 0.
Doug R.
@DougR. Być może, ale najprawdopodobniej zepsułoby to wiele istniejących programów. POSIX zwykle mówi, że proces potrzebuje „odpowiednich uprawnień”, a nie użytkownika . Zobacz także definicję „odpowiednich uprawnień” (która wymienia UID 0 jako „superużytkownika” w niektórych systemach): pubs.opengroup.org/onlinepubs/9699919799/xrat/…
Kusalananda
Komentarz nad moim przywilejem był celem mojego komentarza, nawet jeśli nie podałem go tak jasno jak przed chwilą. Jedyne oprogramowanie, które powinno się zepsuć, to oprogramowanie, które polega na tym, że jego identyfikator UID jest w określonym zakresie. Nie jestem pewien, co to robi.
Doug R.
@DougR. Powiązane: superuser.com/questions/626843/…
Kusalananda
8

W przypadku dystrybucji następujących po LSB przydzielają UID i GID 0–99 statycznie. Identyfikatory UID 100-499 są przydzielane dynamicznie, ale dotyczą one również systemu, a nie kont logowania.

Na przykład takie demony drukujące cupszwykle mają przydzielone własne konto użytkownika. Jeśli więc zostanie wykorzystana luka w zabezpieczeniach demona, demon nie działa tak, jakby rootmiał pełną kontrolę nad systemem. (Nie musi też mieć wpływu na inne demony).

W nowszych wersjach systemu Linux zasięg systemu został rozszerzony do 999.

Pozostawiłoby to UID 500 w górę (lub 1000 w górę) dla kont logowania.

Debian ma dodatkowo statyczny przydział dlaUIDGID 100, chociaż nie mogę sobie wyobrazić, że to odchylenie powoduje jakikolwiek szczególny problem.

Łatwo jest wyobrazić sobie inny system z odchyleniem off-by-one, który dodatkowo rezerwuje UID 500. (Zakładam, że nadal byłby zgodny; nie mogę sobie wyobrazić, że wszystkie Linuxy łamały LSB tak długo, bez jest aktualizowany).

Pierwsze konto logowania nie musi być ani kontem administratora, ani podstawowym kontem administratora. Systemy niekoniecznie używają sudo(zwłaszcza jeśli są wcześniejsze :). W takim przypadku możesz powiedzieć, że „podstawowe konto administratora” root. Poza tym * nix i dystrybucje Linuksa ogólnego przeznaczenia nie rozpoznają określonego „podstawowego konta administratora”.

sourcejedi
źródło
Nie jestem pewien, dlaczego mówisz o Linuksie, kiedy OP pyta o Mac OS X.
CVn
> edytowano 7 godzin temu> w systemach * nix
sourcejedi 14.04.17
4
On more recent Linux distributions, the system range is extended up to 999.- Zawsze miałem identyfikator użytkownika od 1000 wzwyż i zacząłem używać Linuksa w 2005 roku. Nie nazwałbym tego „ostatnim”.
Mirek Długosz
Co sprawia, że ​​myślisz, że 100 jest statyczne na Debianie? Patrząc na kilka moich systemów, wygląda mi to dynamicznie (na jednym był systemd-timesync, na drugim był sshd).
płyn do płukania
Kiedy pytanie zostało zredagowane 12:22 UTC, OP dodał tag [osx] wraz ze wzmianką o OS X w treści pytania. Twoja odpowiedź została opublikowana dziesięć minut później i wydaje się, że w ogóle nie bierze tego pod uwagę.
CVn