Больше нельзя добавлять пользователей с помощью useradd

Больше нельзя добавлять пользователей с помощью useradd

Когда бы я ни делал

# useradd -N --gid 1003 -s /bin/ksh --uid <some UID starting with 10027> --home /home/<someuser> <someuser>

useradd просто отказывается добавлять пользователей и вместо этого выводит:

useradd: Can't get unique secondary UID range
useradd: can't find subordinate user range

И просто скажу вам, что /etc/passwdдлина составляет 9056 строк.

В чем может быть проблема?

решение1

Согласнопользовательдобавл(8), он создает SUB_UID_COUNT вторичный диапазон UID, зарезервированный для каждого пользователя

SUB_UID_MIN(число),  SUB_UID_MAX(число),  SUB_UID_COUNT(число)

    Если /etc/subuidсуществует, команды useraddи  newusers (если у пользователя еще нет подчиненных идентификаторов пользователей) выделяют SUB_UID_COUNTнеиспользуемые идентификаторы пользователей из диапазона SUB_UID_MINдля  SUB_UID_MAXкаждого нового пользователя.

    Значения по умолчанию для SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNTсоставляют соответственно 100000, 600100000 и 10000.

Похоже, вы достигли установленного по умолчанию лимита и поэтому useraddне можете выполнить задание.

решение2

useraddжалуется, что не может выделить подчиненный диапазон UID для нового пользователя, поскольку разрешенный диапазон UID исчерпан. Как вы указали, в вашей системе много пользователей, и значения по умолчанию, настроенные в , login.defsне могут с этим справиться.

Подчиненные файлы UID/GID используются для настройки сопоставлений UID/GID для пространств имен пользователей (см.subuid(5),subgid(5),newuidmap(1), и newgidmap(1) ).

В моем случае в моей системе было более 10000 UID, и  useraddона выдавала точно такую ​​же ошибку. Я не хотел useraddуправлять базами данных subuidи subgid, поскольку мне не нужно настраивать никакие пользовательские сопоставления идентификаторов, поэтому я отключил эту функцию. Это можно сделать, удалив файлы /etc/subuidи /etc/subgid.

Для последних версий теневых утилит (начиная с 4.9или так), настройка SUB_UID_COUNT 0и  SUB_GID_COUNT 0 в вашем /etc/login.defsтакже работает. Смотритеlogin.defs(5)для получения подробной информации.

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