Pourquoi l'UID administrateur principal 501?

11

Je comprends * l'utilisateur administrateur principal reçoit un ID utilisateur 501et les utilisateurs ultérieurs obtenir des numéros supplémentaires ( 502, 503...). Mais pourquoi 501? Quelle est la particularité 50x, quelle est la raison historique / technique de ce choix?

* J'ai commencé à me pencher sur cette question lorsque je me suis demandé pourquoi mon disque dur externe contenait tous ses fichiers poubelle à l'intérieur .Trashes/501. Ma recherche m'a conduit à la conclusion 501est l'ID utilisateur de l'administrateur principal dans les systèmes * nix (je suis sur macOS), mais pas pourquoi .

user137369
la source
7
Je pensais que l'UID de l'administrateur principal était 0!
Jeff Schaller

Réponses:

21

De nombreux systèmes Unix commencent à distribuer des UID aux utilisateurs à un certain nombre particulier. Solaris fournira le premier utilisateur à usage général UID 100, sur OpenBSD c'est 1000, et sur macOS il apparaît que c'est UID 501 qui sera l'UID pour le premier utilisateur interactif créé, qui est également probablement un utilisateur administrateur macOS (qui n'est pas le même en tant qu'utilisateur root).

Les comptes avec des nombres inférieurs sont des comptes d'utilisateurs système pour les démons, etc. Cela permet de distinguer plus facilement les comptes "humains" interactifs des comptes de services système. Cela peut également faciliter la gestion des utilisateurs, l'authentification, etc. dans divers logiciels. YP / NIS , un système légèrement obsolète pour conserver les comptes d'utilisateurs (et d'autres informations) sur un serveur central sans avoir à créer des utilisateurs locaux sur plusieurs machines clientes, par exemple, a un paramètre MINUIDet MAXUIDpour la plage de comptes d'utilisateurs qu'il doit gérer.

Sur certains Unices, une gamme de comptes de service système peut être allouée à des logiciels tiers, tels que les UID 50 à 999 sur FreeBSD ou 500 à 999 sur OpenBSD.

Toutes ces gammes sont choisies par les fabricants et les responsables des unités individuelles en fonction des besoins attendus de leur système d'exploitation. La norme POSIX ne dit rien sur ces choses. Les UID (et GID) attribuables les plus bas et les plus élevés sont souvent configurables par un administrateur local (voir votre addusermanuel).

La plupart des Unices réservent l'UID 0 rootau super-utilisateur et attribuent l'UID le plus élevé possible (ou au moins une valeur élevée) à l'utilisateur nobody(Solaris utilise l'UID 60001, OpenBSD utilise 32768, mais les UID peuvent être beaucoup plus grands que cela).

(Voir les commentaires sur l'UID 0 toujours root(ou non), ce qui est une légère digression de ce sujet)


Mise à jour: Le projet OpenBSD a récemment rejeté l'idée de randomiser l'allocation UID / GID.

Kusalananda
la source
Notez également que ce ne sont que des CONVENTIONS. Dans les systèmes Unix et Unix, il n'y a rien de intrinsèquement magique dans un UID. Root pourrait recevoir arbitrairement un UID de 65535 et le premier utilisateur interactif pourrait être assigné comme UID 0.
Doug R.
@DougR. Peut-être, mais cela briserait très probablement un certain nombre de logiciels existants. POSIX a tendance à dire qu'un processus a besoin de "privilèges appropriés", pas d'un utilisateur . Voir aussi la définition des "privilèges appropriés" (qui mentionne l'UID 0 comme "superutilisateur" sur certains systèmes): pubs.opengroup.org/onlinepubs/9699919799/xrat/…
Kusalananda
Le privilège sur l'utilisateur était le point de mon commentaire, même si je ne l'ai pas dit aussi clairement que vous venez de le faire. Le seul logiciel qui devrait casser est un logiciel qui dépend de son UID se trouvant dans une plage spécifique. Je ne sais pas vraiment ce que cela fait.
Doug R.
@DougR. Connexe: superuser.com/questions/626843/…
Kusalananda
8

Pour les distributions qui suivent le LSB , ils allouent statiquement les UID et GID 0-99. Les UID 100-499 sont alloués dynamiquement, mais ils sont également destinés au système et non aux comptes de connexion.

Par exemple, les démons d'impression comme cupsont tendance à se voir attribuer leur propre compte utilisateur. Donc, si une vulnérabilité dans le démon est exploitée, le démon ne fonctionne pas comme rootavec la pleine puissance sur le système. (Il n'a pas non plus nécessairement le pouvoir d'interférer avec d'autres démons).

Sur les distributions Linux plus récentes, la gamme du système est étendue jusqu'à 999.

Cela laisserait les UID 500 vers le haut (ou 1000 vers le haut) pour les comptes de connexion.

Debian a en plus une allocation statique pourUIDGID 100, bien que je ne puisse pas imaginer que cet écart cause un problème particulier.

Il est facile d'imaginer un autre système avec une déviation au coup par coup, qui réserve en outre l'UID 500. (Je suppose que ce serait toujours conforme; je ne peux pas imaginer que tous les Linux ont violé le LSB pendant si longtemps, sans en cours de mise à jour).

Le premier compte de connexion ne doit être ni un compte administrateur ni le compte administrateur principal. Les systèmes n'utilisent pas nécessairement sudo(surtout s'ils le précèdent :). Vous pourriez dire que le "compte administrateur principal" est rootdans ce cas. En dehors de cela, * nix et les distributions Linux à usage général ne reconnaissent pas un "compte administrateur principal" spécifique.

sourcejedi
la source
Je ne sais pas pourquoi vous parlez de Linux, quand OP pose spécifiquement des questions sur Mac OS X.
un CVn du
> modifié il y a 7 heures> dans * nix systems
sourcejedi
4
On more recent Linux distributions, the system range is extended up to 999.- J'ai toujours eu un identifiant utilisateur à partir de 1000 et j'ai commencé à utiliser Linux en 2005. Je ne dirais pas que c'est "récent".
Mirek Długosz
Qu'est-ce qui vous fait penser que 100 est statique sur Debian? En regardant quelques-uns de mes systèmes, cela me semble dynamique (sur l'un, c'était systemd-timesync, sur un autre, c'était sshd).
plugwash
Lorsque la question a été modifiée à 12h22 UTC, l'OP a ajouté la balise [osx] avec la mention d'OS X dans le corps de la question. Votre réponse a été publiée dix minutes plus tard et semble ne pas en tenir compte du tout.
un CVn du