![Больше нельзя добавлять пользователей с помощью useradd](https://rvso.com/image/76429/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%B5%20%D0%BD%D0%B5%D0%BB%D1%8C%D0%B7%D1%8F%20%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D1%8F%D1%82%D1%8C%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20useradd.png)
Когда бы я ни делал
# 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)
для получения подробной информации.