Кстати - этот вопрос / ответ обновлен для сегодняшних ОС.
Цитата из redhat: управление уникальными назначениями номеров UID и GID , в нем описывается использование UID и GID и их управление, а также методы работы генераторов (серверов ID)
должен генерировать случайные значения UID и GID и одновременно гарантировать, что реплики никогда не генерируют одинаковые значения UID или GID. Необходимость уникальных номеров UID и GID может даже пересекать домены IdM, если в одной организации имеется несколько разнородных доменов.
Точно так же утилиты, которые разрешают доступ к системе, могут вести себя непредсказуемо (та же ссылка):
Если двум записям присваивается один и тот же идентификационный номер, при поиске этого номера возвращается только первая запись.
Проблема возникает, когда понятие «первый» плохо определено. В зависимости от установленной службы имена пользователей могут храниться в хэше переменного размера, который будет возвращать другое имя пользователя в зависимости от несовместимых факторов. (Я знаю, что это правда, поскольку я иногда пытался использовать 2 имени пользователя с одним идентификатором, одно из которых было локальным именем пользователя, а другое - именем domain.user, которое я хотел сопоставить с UID (к которому я в конечном итоге обратился в совершенно другим способом), но я мог войти в систему с помощью «usera», сделать «who» или «id» и увидеть «userb» ИЛИ «usera» - случайно.
Существует интерфейс для извлечения нескольких значений UID из группы (группы с одним GID предназначены для связи с несколькими UID), но нет переносимого интерфейса для возврата списка имен для одного UID, поэтому любой, кто ожидает того же или подобное поведение между системами или даже приложениями в одной и той же системе может быть удивлено.
В Sun (теперь oracle) yp (желтые страницы) или NIS (NetworkInformationServices) также имеется много ссылок на требования уникальности. Специальные функции и серверы настроены для распределения уникальных идентификаторов по нескольким серверам и доменам (например, man-страница демонов распределителя uid_allocd - UID и GID).
Третий источник, который можно проверить, это документация сервера Microsoft для сопоставления учетных записей NFS. NFS - это протокол общего доступа к файлам Unix, в котором описывается, как права доступа к файлам и доступ поддерживаются идентификатором. Там пишут:
UID. Это целое число без знака, используемое операционными системами UNIX для идентификации пользователей и должно быть уникальным в файле passwd.
GID. Это целое число без знака, используемое ядром UNIX для идентификации групп и должно быть уникальным в файле группы. Страница управления MS-NFS
В то время как некоторые ОС допускают использование нескольких имен / UID (возможно, производных BSD), большинство ОС зависят от того, являются ли они уникальными, и могут вести себя непредсказуемо, когда это не так.
Примечание. Я добавляю эту страницу, так как кто-то назвал эту датированную запись поддержкой современных утилит для размещения неуникальных UID / GID ... чего большинство, нет.