Я не верю, что существует какой-то неотъемлемый риск, это то, что делается просто для того, чтобы отделить то, что считается системными учетными записями и учетными записями пользователей. Практика использования чисел ниже 500, по моему опыту, является редхатизмом, и на самом деле не более того.
В Solaris я видел пользователей, которым также назначали номера, начинающиеся с 100, только спустя годы обнаружил, что при объединении систем из двух небольших отделов возникает своего рода кошмар, поскольку в двух отделах было несколько пользователей с одинаковым UID / GID назначен.
Это действительно основной риск / головная боль при назначении UID. Поскольку UID - это то, что в конечном итоге записывается в inode для заданных пользователем файлов / каталогов, вам не нужно, чтобы вам приходилось выполнять массовый find
поиск файлов, принадлежащих UID 1234, и менять их на 5678 ,
Поэтому, задумавшись о выборе UID, администраторы могут избежать головной боли в будущем.
Использование 500 и выше - это всего лишь попытка Redhat (и других Unix-систем) выделить себе достаточно буфера, чтобы любые системные учетные записи, которые могут понадобиться для создания, не смешивались с UID, назначенными пользователям.
/etc/login.defs
Кстати, число 500 определяется этим параметром в файле конфигурации /etc/login.defs
.
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500
UID_MAX 60000
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500
GID_MAX 60000
Вы можете изменить это на что угодно, если хотите изменить поведение по умолчанию с помощью команд useradd
/ adduser
.
Manradd man page
Если вы посмотрите на useradd
страницу руководства, вы заметите эту часть, в которой обсуждается значение по умолчанию для GID, но этот комментарий также применим и к UID:
выдержка
-g, --gid GROUP
The group name or number of the user´s initial login group. The group name
must exist. A group number must refer to an already existing group.
If not specified, the behavior of useradd will depend on the USERGROUPS_ENAB
variable in /etc/login.defs. If this variable is set to yes
(or -U/--user-group is specified on the command line), a group will be
created for the user, with the same name as her loginname. If the variable
is set to no (or -N/--no-user-group is specified on the command line),
useradd will set the primary group of the new user to the value specified by
the GROUP variable in /etc/default/useradd, or 100 by default.
Системные учетные записи
Еще одна вещь, которую стоит обратить внимание на useradd
странице руководства, - это бит при создании системного аккаунта.
выдержка
-r, --system
Create a system account.
System users will be created with no aging information in /etc/shadow,
and their numeric identifiers are choosen in the SYS_UID_MIN-SYS_UID_MAX
range, defined in /etc/login.defs, instead of UID_MIN-UID_MAX (and their
GID counterparts for the creation of groups).
Note that useradd will not create a home directory for such an user,
regardless of the default setting in /etc/login.defs (CREATE_HOME). You
have to specify the -m options if you want a home directory for a system
account to be created.
Именно этот метод ( useradd -r ...
) часто используется сценариями, которые включаются в различные менеджеры пакетов, такие как RPM, при установке пакета. Создание сценариев таким образом позволяет системе автоматически выбирать следующий доступный UID / GID в данной системе без риска наступления на UID / GID, уже назначенные пользователям системы.