Não é mais possível adicionar usuários usando useradd

Não é mais possível adicionar usuários usando useradd

Sempre que eu faço

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

useradd apenas se recusa a adicionar qualquer usuário e imprime:

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

E só para dizer, /etc/passwdtem 9.056 linhas.

Qual poderia ser o problema?

Responder1

Conformeadição de usuário(8), ele cria um intervalo uid secundário SUB_UID_COUNT reservado para cada usuário

SUB_UID_MIN(número),  SUB_UID_MAX(número),  SUB_UID_COUNT(número)

    Se /etc/subuidexistir, os comandos useraddnewusers (a menos que o usuário já tenha IDs de usuários subordinados) alocarão SUB_UID_COUNTIDs de usuários não utilizados do intervalo SUB_UID_MINpara  SUB_UID_MAXpara cada novo usuário.

    Os valores padrão para SUB_UID_MIN, SUB_UID_MAX, SUB_UID_COUNTsão respectivamente 100.000, 600100000 e 10.000.

Parece que você atingiu esse limite padrão e, portanto, useraddestá falhando.

Responder2

useraddestá reclamando que não pode alocar um intervalo de UID subordinado para o novo usuário porque o intervalo de UID permitido está esgotado. Como você indicou, você tem muitos usuários em seu sistema e os valores padrão configurados login.defsnão conseguem lidar com isso.

Arquivos UID/GID subordinados são usados ​​para configurar mapeamentos UID/GID para namespaces de usuário (consultesubuid(5),subgid(5),newuidmap(1), e newgidmap(1) ).

No meu caso, eu tinha mais de 10.000 UIDs em meu sistema e  useraddestava falhando exatamente com o mesmo erro. Eu não queria useraddgerenciar os bancos de dados subuide subgidporque não preciso configurar nenhum mapeamento de ID personalizado, então desativei esse recurso. Isso pode ser feito removendo os arquivos /etc/subuide /etc/subgid.

Para versões recentes de utilitários shadow (desde 4.9ou então), configuração SUB_UID_COUNT 0SUB_GID_COUNT 0 no seu /etc/login.defstambém funciona. Verlogin.defs(5)para detalhes.

informação relacionada