[devel] UID_MIN/GID_MIN 500 -> 1000

Alexey V. Vissarionov gremlin на altlinux.org
Пт Апр 21 15:50:53 MSK 2023


Good ${greeting_time}!

On 2023-04-20 14:15:19 +0300, Mikhail Efremov wrote:

 > Есть мысль увеличить UID_MIN/GID_MIN по умолчанию до 1000,

Не вижу никаких проблем. Еще и UID_MAX можно увеличить до
4294967294 - еще со времен ядер 2.4, что ли... в 2.6 уже
точно 32-битные UID/GID были.

 > в апстриме

А кто для нас апстрим? :-)

 > и во всех других дистрибутивах это давно уже сделано.

Среди них уже давно нет хороших примеров для подражания.
Отдельные решения срисовать - да, бывает полезно, но так,
чтобы всерьез брать пример - увы.

 > Системных пользователей все больше и лучше иметь для них
 > пространство UID с запасом.

При всем своем довольно большом опыте эксплуатации самых
разных систем и сервисов я могу вспомнить всего один сервер
из очень стародавних времен, где количество системных
пользователей превышало сотню, и это было, мягко говоря,
от бедности. Выйти за пределы пяти сотен... теоретически,
наверное, возможно, но я с трудом представляю себе, как для
этого надо загадить систему.

 > Единственной проблемой мне видится то, что нужно сохранить
 > текущие значения в /etc/login.defs при обновлении, переход
 > пользователей в системные может привести к неизвестным
 > побочным эффектам.

Только если кто-то где-то сдуру принимает решение о системности
пользователя исходя из диапазона, в который попадает его UID.
Единственное очевидное исключение - root, но там UID проверяется
не на принадлежность диапазону, а ноль или не ноль.

В норме признаков (достаточных условий) системности пользователя
всего два:
1. указанный шелл отсутствует в /etc/shells;
2. указанный домашний каталог не принадлежит пользователю.

Иногда к ним относят отсутствие валидного encrypted password, но
на это лучше не закладываться. Как и на любые другие параметры.

 > Если login.defs редактировался, то проблемы нет, он noreplace
 > и будет создан login.defs.rpmnew. А вот если не редактировался,
 > то значения UID_MIN/GID_MIN все равно надо бы сохранить старые.

На существующих системах при обновлении - да, было бы неплохо.
Хотя и не критично.

 > Мне в голову приходит только сохранять в файл в /tmp при
 > обновлении (в %pre) и восстанавливать в %post. Если у кого
 > есть идеи как это сделать лучше/проще, то с удовольствием
 > выслушаю.

Так и делать. А перед восстановлением переименовать login.defs
в login.defs.rpmnew - результат будет таким же, как и в случае
модифицированного login.defs


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


Подробная информация о списке рассылки Devel