BTW - cette question / réponse mise à jour pour les systèmes d'exploitation d'aujourd'hui.
Citant de redhat: la gestion des attributions uniques de numéros UID et GID , il décrit l'utilisation des UID et GID et leur gestion et comment les générateurs (serveurs d'ID)
doit générer des valeurs UID et GID aléatoires et garantir simultanément que les réplicas ne génèrent jamais la même valeur UID ou GID. La nécessité de numéros UID et GID uniques peut même traverser des domaines IdM, si une seule organisation a plusieurs domaines disparates.
De même, les utilitaires qui permettent d'accéder au système peuvent se comporter de manière imprévisible (même référence):
Si deux entrées reçoivent le même numéro d'identification, seule la première entrée est renvoyée dans la recherche de ce numéro.
Le problème survient lorsque le concept de «premier» est mal défini. Selon le service installé, les noms d'utilisateur peuvent être conservés dans un hachage de taille variable qui retournerait un nom d'utilisateur différent en fonction de facteurs incohérents. (Je sais que c'est vrai, car j'ai parfois essayé d'utiliser 2 noms d'utilisateur avec un ID, l'un étant un nom d'utilisateur local et l'autre étant un nom d'utilisateur de domaine que je voulais mapper à l'UID (que j'ai finalement abordé dans d'une manière complètement différente), mais je pouvais me connecter avec "usera", faire un "qui" ou "id" et voir "userb" OU "usera" - au hasard.
Il existe une interface pour récupérer plusieurs valeurs d'UID à partir d'un groupe (les groupes avec un seul GID sont conçus pour être associés à plusieurs UID), mais il n'y a pas d'interface portable pour renvoyer une liste de noms pour un UID, donc toute personne s'attendant à la même chose ou un comportement similaire entre des systèmes ou même des applications sur le même système peut être malheureusement surpris.
Dans Sun (maintenant oracle) yp (pages jaunes) ou NIS (NetworkInformationServices), il existe également de nombreuses références aux exigences d'unicité. Des fonctions et serveurs spéciaux sont configurés pour allouer des ID uniques sur plusieurs serveurs et domaines (par exemple, la page de manuel uid_allocd, gid_allocd - UID et GID allocator daemons
Une troisième source que l'on pourrait vérifier est la documentation du serveur de Microsoft pour le mappage de compte NFS. NFS est un protocole de partage de fichiers Unix et ils décrivent comment les autorisations et l'accès aux fichiers sont gérés par l'ID. Là, ils écrivent:
UID. Il s'agit d'un entier non signé utilisé par les systèmes d'exploitation UNIX pour identifier les utilisateurs et doit être unique dans le fichier passwd.
GID. Il s'agit d'un entier non signé utilisé par le noyau UNIX pour identifier les groupes et doit être unique dans le fichier de groupe. Page de gestion MS-NFS
Alors que certains systèmes d'exploitation peuvent avoir autorisé plusieurs noms / UID (dérivés BSD, peut-être?), La plupart des systèmes d'exploitation dépendent de leur caractère unique et peuvent se comporter de manière imprévisible lorsqu'ils ne le sont pas.
Remarque - J'ajoute cette page, car quelqu'un a qualifié cette entrée datée de prise en charge d'utilitaires modernes pour accueillir des UID / GID non uniques ... ce que la plupart d'entre eux ne font pas.