Чому основний UID 501 адміністратора?


11

Я розумію * користувач первинного адміністратора отримує ідентифікатор користувача 501і наступні користувачі отримують додаткові номери ( 502, 503, ...). Але чому 501? Що особливого 50x, в чому історична / технічна причина такого вибору?

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


7
Я думав, що UID основного адміністратора дорівнював 0!
Джефф Шаллер

Відповіді:


21

Багато систем Unix починають роздавати UID користувачам певної кількості. Solaris надасть користувачеві UID 100 першого загального призначення, на OpenBSD - це 1000, а на macOS з'являється, що UID 501 буде UID для першого створеного інтерактивного користувача, який, ймовірно, користувач адміністратора macOS (що не є тим самим як користувач root).

Облікові записи з меншими числами - це облікові записи користувачів системи для демонів тощо. Це полегшує відмежування інтерактивних "людських" облікових записів від облікових записів системних служб. Це також може полегшити керування користувачами, аутентифікацію тощо у різному програмному забезпеченні. YP / NIS , дещо застаріла система зберігання облікових записів користувачів (та інша інформація) на центральному сервері без необхідності створювати місцевих користувачів на кількох клієнтських машинах, наприклад, має MINUIDта MAXUIDналаштовує діапазон облікових записів користувачів, з якими він повинен працювати.

У деяких Unices діапазон облікових записів системних служб може бути розподілений стороннім програмним забезпеченням, таким як UID 50-999 у FreeBSD або 500-999 на OpenBSD.

Усі ці діапазони вибираються виробниками та обслуговуючими особами окремих Unices відповідно до очікуваних потреб їхньої операційної системи. Стандарт 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.
Doug R.

@DougR. Можливо, але цілком ймовірно буде порушено ряд існуючих програм. POSIX, як правило, говорить, що процес потребує "відповідних привілеїв", а не користувача . Дивіться також визначення "відповідних привілеїв" (яке в деяких системах зазначає UID 0 як "суперпользователь"): pubs.opengroup.org/onlinepubs/9699919799/xrat/…
Kusalananda

Привілей над користувачем був точкою мого коментаря, навіть якщо я не заявив це так чітко, як ви це робили. Єдине програмне забезпечення, яке має зламатись, - це програмне забезпечення, яке покладається на те, що його UID знаходиться в певному діапазоні. Невідомо, що, якщо що, це робить.
Дуг Р.

@DougR. Пов’язано: superuser.com/questions/626843/…
Kusalananda

8

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

Наприклад, друкуючи демони, як cupsправило, виділяються власні облікові записи користувачів. Тож якщо експлуатується вразливість демона, демон не працює так, як rootз повною владою над системою. (Також він не має сили втручатися в інші демони).

У останніх дистрибутивах Linux діапазон систем розширюється до 999.

Це дозволило б залишити UIDs на 500 вище (або на 1000 вгору) для вхідних акаунтів.

Debian додатково має статичне виділення дляUIDGID 100, хоча я не можу уявити, що таке відхилення викликає якусь конкретну проблему.

Неважко уявити іншу систему із відхиленням за одним, яке додатково резервує UID 500. (Я припускаю, що це все-таки було б сумісним; я не можу уявити, що всі Linux так довго порушували LSB, без оновляється).

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


Не впевнений, чому ви говорите про Linux, коли OP спеціально запитує про Mac OS X.
CVn

> відредаговано 7 годин тому> in * nix systems
sourcejedi

4
On more recent Linux distributions, the system range is extended up to 999.- У мене завжди було ідентифікаторів користувачів від 1000 і вище, і я почав використовувати Linux у 2005 році. Я б не називав це "останнім".
Mirek Długosz

Чому ви вважаєте, що 100 є статичним на Debian? Дивлячись на пару моїх систем, на мене це виглядає динамічно (на одній це було systemd-timesync, на іншій - sshd).
підключення

Коли питання було відредаговано 12:22 UTC, ОП додало тег [osx] разом із згадкою про OS X в тілі запитання. Ваша відповідь була опублікована через десять хвилин і, здається, зовсім не враховує це.
CVn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.