A proposito: questa domanda / risposta è stata aggiornata per i SO di oggi.
Citando da redhat: gestione delle assegnazioni univoche di UID e GID , descrive l'uso di UID e GID e la loro gestione e come generatori (server ID)
deve generare valori UID e GID casuali e allo stesso tempo garantire che le repliche non generino mai lo stesso valore UID o GID. La necessità di numeri UID e GID univoci potrebbe persino attraversare domini IdM, se una singola organizzazione ha più domini disparati.
Allo stesso modo, i programmi di utilità che consentono l'accesso al sistema possono comportarsi in modo imprevedibile (stesso riferimento):
Se a due voci viene assegnato lo stesso numero ID, viene restituita solo la prima voce nella ricerca di quel numero.
Il problema si presenta quando il concetto di "primo" è mal definito. A seconda del servizio installato, i nomi utente possono essere mantenuti in un hash di dimensioni variabili che restituirebbe un nome utente diverso in base a fattori incoerenti. (So che questo è vero, dal momento che a volte ho provato a usare 2 nomi utente con un ID, uno essendo un nome utente locale e l'altro un dominio.username che volevo mappare sull'UID (che alla fine ho indirizzato a un modo completamente diverso), ma potrei accedere con "usera", fare un "who" o "id" e vedere "userb" O "usera" - in modo casuale.
Esiste un'interfaccia per il recupero di più valori di UID da un gruppo (i gruppi con un singolo GID sono progettati per essere associati a più UID), ma non esiste un'interfaccia portatile per restituire un elenco di nomi per un UID, quindi chiunque si aspetta lo stesso o un comportamento simile tra sistemi o persino applicazioni sullo stesso sistema può essere infelicemente sorpreso.
In the Sun (now oracle) yp (yellowpages) o NIS (NetworkInformationServices), ci sono anche molti riferimenti a requisiti di unicità. Funzioni speciali e server sono configurati per allocare ID univoci su più server e domini (ad esempio uid_allocd, gid_allocd - Manpage dei demoni di allocatore UID e GID
Una terza fonte che si potrebbe verificare è la documentazione del server Microsoft per NFS Account Mapping. NFS è un protocollo di condivisione file unix e descrivono come le autorizzazioni e l'accesso ai file sono gestiti dall'ID. Lì, scrivono:
UID. Questo è un numero intero senza segno utilizzato dai sistemi operativi UNIX per identificare gli utenti e deve essere univoco nel file passwd.
GID. Questo è un numero intero senza segno utilizzato dal kernel UNIX per identificare i gruppi e deve essere univoco nel file di gruppo. Pagina di gestione MS-NFS
Mentre alcuni sistemi operativi possono aver consentito più nomi / UID (derivati BSD, forse?) La maggior parte dei sistemi operativi dipende dal fatto che questo è unico e può comportarsi in modo imprevedibile quando non lo sono.
Nota: sto aggiungendo questa pagina, in quanto qualcuno ha indicato questa voce datata come supporto per utility moderne per ospitare UID / GID non unici ... che la maggior parte non lo fanno.