Почему основной UID администратора — 501?

Почему основной UID администратора — 501?

Я понимаю*, что основному пользователю-администратору присваивается идентификатор пользователя, 501а последующие пользователи получают возрастающие номера ( 502, 503, …). Но почему 501? Что особенного в 50x, какова историческая/техническая причина такого выбора?

* Я начал изучать это, когда мне стало любопытно, почему на моем внешнем жестком диске все его файлы были удалены .Trashes/501. Мой поиск привел меня к выводу, 501что это идентификатор пользователя для основного администратора в системах *nix (я использую macOS), но непочему.

решение1

Многие системы Unix начинают выдавать UID пользователям с определенного числа. Solaris даст первому универсальному пользователю UID 100, в OpenBSD это 1000, а в macOS, похоже, UID 501 будет UID для первого созданного интерактивного пользователя, который, скорее всего, также является администратором macOS (что не то же самое, что и пользователь root).

Учетные записи с меньшими номерами — это учетные записи системных пользователей для демонов и т. д. Это упрощает различение интерактивных «человеческих» учетных записей от учетных записей системных служб. Это также может облегчить управление пользователями, аутентификацию и т. д. в различном программном обеспечении.YP/NIS, немного устаревшая система для хранения учетных записей пользователей (и другой информации) на центральном сервере без необходимости создания локальных пользователей на нескольких клиентских машинах, например, имеет MINUIDи MAXUIDнастройку для диапазона учетных записей пользователей, которые она должна обрабатывать.

На некоторых Unix-системах диапазон учетных записей системных служб может быть выделен стороннему программному обеспечению, например, UID от 50 до 999 на FreeBSD или от 500 до 999 на OpenBSD.

Все эти диапазоны выбираются создателями и сопровождающими отдельных Unix-систем в соответствии с ожидаемыми потребностями их операционной системы. Стандарт POSIX ничего не говорит об этих вещах. Самый низкий и самый высокий выделяемый UID (и GID) часто настраиваются локальным администратором (см. руководство adduser).

Большинство Unix-систем резервируют UID 0 для rootсуперпользователя и назначают максимально возможный UID (или, по крайней мере, некоторое высокое значение) пользователю nobody(Solaris использует UID 60001, OpenBSD использует 32768, но UID могут бытьмногобольше этого).

(См. комментарии о том, что UID 0 всегда есть root(или нет), что является небольшим отступлением от этой темы)


Обновление: проект OpenBSDнедавно отклоненоидея рандомизации распределения UID/GID.

решение2

Для распределений, которые следуютМЗП, они выделяют UID и GID 0-99 статически. UID 100-499 выделяются динамически, но они также предназначены для системы, а не для учетных записей входа.

Например, демоны печати, как правило, cupsвыделяют собственную учетную запись пользователя. Поэтому, если уязвимость в демоне эксплуатируется, демон не работает с rootполной властью над системой. (И не обязательно имеет право вмешиваться в работу других демонов).

В более поздних дистрибутивах Linux системный диапазон расширен до 999.

Это оставит UID от 500 и выше (или от 1000 и выше) для учетных записей.

Debian дополнительно имеетстатическийраспределение дляУИДGID 100, хотя я не могу себе представить, чтобы это отклонение вызвало какую-то особую проблему.

Легко представить себе другую систему с отклонением на единицу, которая дополнительно резервирует UID 500. (Я предполагаю, что это все равно будет соответствовать; я не могу себе представить, чтобы все Linux-ы так долго нарушали LSB, не обновляя его).

Первая учетная запись входа не обязательно должна быть учетной записью администратора или основной учетной записью администратора. Системы не обязательно используют sudo(особенно если они старше :). Можно сказать, что rootв этом случае это «основная учетная запись администратора». Кроме этого, *nix и дистрибутивы Linux общего назначения не распознают определенную «основную учетную запись администратора».

Связанный контент