BTW - esta pergunta / resposta foi atualizada para os sistemas operacionais atuais.
Citando from redhat: gerenciando atribuições exclusivas de UID e GID Number , ele descreve o uso de UID e GIDs e seu gerenciamento e como geradores (servidores de ID)
deve gerar valores aleatórios de UID e GID e simultaneamente garantir que as réplicas nunca gerem o mesmo valor de UID ou GID. A necessidade de números UID e GID exclusivos pode até cruzar domínios do IdM, se uma única organização tiver vários domínios diferentes.
Da mesma forma, os utilitários que permitem acesso ao sistema podem se comportar de forma imprevisível (mesma referência):
Se duas entradas tiverem o mesmo número de ID atribuído, somente a primeira entrada será retornada em uma pesquisa para esse número.
O problema surge quando o conceito de "primeiro" é mal definido. Dependendo do serviço instalado, os nomes de usuário podem ser mantidos em um hash de tamanho variável que retornaria um nome de usuário diferente com base em fatores inconsistentes. (Sei que isso é verdade, já que às vezes tentei usar 2 nomes de usuário com um ID, um sendo um nome de usuário local e o outro um domain.username que eu queria mapear para o UID (que acabei abordando em uma maneira completamente diferente), mas eu poderia fazer login com "usera", fazer um "who" ou "id" e ver "userb" OU "usera" - aleatoriamente.
Existe uma interface para recuperar vários valores de UIDs de um grupo (grupos com um único GID são projetados para serem associados a vários UIDs), mas não existe uma interface portátil para retornar uma lista de nomes para um UID, portanto, qualquer pessoa que espere o mesmo ou comportamento semelhante entre sistemas ou mesmo aplicativos no mesmo sistema pode ser surpreendentemente infeliz.
No Sun (agora oracle) yp (páginas amarelas) ou NIS (NetworkInformationServices), também existem muitas referências a requisitos de exclusividade. Funções e servidores especiais são configurados para alocar IDs exclusivos em vários servidores e domínios (exemplo: uid_allocd, gid_allocd - página de manual dos daemons do alocador UID e GID
Uma terceira fonte que se pode verificar é a documentação do servidor da Microsoft para o mapeamento de contas NFS. O NFS é um protocolo de compartilhamento de arquivos unix e eles descrevem como as permissões e o acesso ao arquivo são mantidos pelo ID. Lá, eles escrevem:
UID. Este é um número inteiro não assinado usado pelos sistemas operacionais UNIX para identificar usuários e deve ser exclusivo no arquivo passwd.
GID. Esse é um número inteiro não assinado usado pelo kernel do UNIX para identificar grupos e deve ser exclusivo no arquivo de grupo. Página de gerenciamento MS-NFS
Enquanto alguns sistemas operacionais podem ter permitido vários nomes / UID (derivados do BSD, talvez?), A maioria dos sistemas operacionais depende disso, sendo único e pode se comportar de maneira imprevisível quando não é.
Nota - Estou adicionando esta página, pois alguém se referiu a esta entrada datada como suporte para utilitários modernos para acomodar UID / GID não exclusivos ... o que a maioria não faz.