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

11

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

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

user137369
источник
7
Я думал, что UID основного администратора был 0!
Джефф Шаллер

Ответы:

21

Многие системы 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.

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

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

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


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

Кусалананда
источник
Обратите внимание, что это всего лишь КОНВЕНЦИИ. В Unix и Unix-подобных системах нет ничего магического в UID. Корню можно произвольно дать UID 65535, а первому интерактивному пользователю можно назначить UID 0.
Дуг Р.
@DougR. Возможно, но это весьма вероятно сломало бы ряд существующих частей программного обеспечения. POSIX склонен говорить, что процессу нужны «соответствующие привилегии», а не пользователь . См. Также определение «соответствующих привилегий» (в некоторых системах UID 0 упоминается как «суперпользователь»): pubs.opengroup.org/onlinepubs/9699919799/xrat/…
Кусалананда
Право на пользователя было точкой моего комментария, даже если я не изложил это так четко, как вы только что сделали. Единственное программное обеспечение, которое должно сломаться, - это программное обеспечение, которое полагается на свой UID в определенном диапазоне. Не уверен, что, если что-нибудь, делает это
Дуг Р.
@DougR. Связано: superuser.com/questions/626843/…
Кусалананда
8

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

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

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

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

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

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

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

sourcejedi
источник
Не уверен, почему вы говорите о Linux, когда OP специально спрашивает о Mac OS X.
CVn
> отредактировано 7 часов назад> в * системах nix
sourcejedi
4
On more recent Linux distributions, the system range is extended up to 999.- У меня всегда был идентификатор пользователя от 1000 и выше, и я начал использовать Linux в 2005 году. Я бы не назвал это «недавним».
Мирек Длугош
Что заставляет вас думать, что 100 является статичным в Debian? Глядя на пару моих систем, для меня это выглядит динамически (на одной это была systemd-timesync, на другой - sshd).
plugwash
Когда вопрос редактировался в 12:22 UTC, OP добавил тег [osx] вместе с упоминанием OS X в теле вопроса. Ваш ответ был опубликован через десять минут и, похоже, не учитывает это вообще.
CVn