![Ya no puedo agregar usuarios usando useradd](https://rvso.com/image/76429/Ya%20no%20puedo%20agregar%20usuarios%20usando%20useradd.png)
Siempre que lo hago
# useradd -N --gid 1003 -s /bin/ksh --uid <some UID starting with 10027> --home /home/<someuser> <someuser>
useradd simplemente se niega a agregar ningún usuario y en su lugar imprime:
useradd: Can't get unique secondary UID range
useradd: can't find subordinate user range
Y solo para decirte que /etc/passwd
tiene 9056 líneas.
¿Cual podría ser el problema?
Respuesta1
segúnusuarioañadir(8), crea SUB_UID_COUNT rango de uid secundario reservado para cada usuario
SUB_UID_MIN
(número),SUB_UID_MAX
(número),SUB_UID_COUNT
(número)Si
/etc/subuid
existe, los comandosuseradd
ynewusers
(a menos que el usuario ya tenga ID de usuario subordinados) asignanSUB_UID_COUNT
ID de usuario no utilizados del rangoSUB_UID_MIN
paraSUB_UID_MAX
cada nuevo usuario.Los valores predeterminados para ,
SUB_UID_MIN
son respectivamente 100000, 600100000 y 10000.SUB_UID_MAX
SUB_UID_COUNT
Parece que alcanzó ese límite predeterminado y, por lo tanto, useradd
está fallando.
Respuesta2
useradd
se queja de que no puede asignar un rango de UID subordinado para el nuevo usuario porque el rango de UID permitido está agotado. Como indicó, tiene muchos usuarios en su sistema y los valores predeterminados configurados login.defs
no pueden manejar eso.
Los archivos UID/GID subordinados se utilizan para configurar asignaciones UID/GID para espacios de nombres de usuario (consultesubuid(5)
,subgid(5)
,newuidmap(1)
, y newgidmap(1)
).
En mi caso, tenía más de 10000 UID en mi sistema y useradd
fallaba exactamente el mismo error. No quería useradd
administrar las bases de datos subuid
y subgid
porque no necesito configurar ninguna asignación de ID personalizada, por lo que deshabilité esta función. Esto se puede hacer eliminando los archivos /etc/subuid
y /etc/subgid
.
Para versiones recientes de utilidades ocultas (desde 4.9más o menos), configuración SUB_UID_COUNT 0
y SUB_GID_COUNT 0
en tu /etc/login.defs
también funciona. Verlogin.defs(5)
para detalles.