El diablo está en los detalles, en la useradd
página de manual (puede verlo emitiendo man 8 useradd
):
-u, --uid UID
The numerical value of the user's ID. This value must be unique,
unless the -o option is used. The value must be non-negative. The
default is to use the smallest ID value greater than or equal to
UID_MIN and greater than every other user.
Por lo tanto, se usará de manera predeterminada el uid más pequeño sin usar, que es más grande que otros usuarios, en el archivo de contraseña. Al ver que eliminar sbaxter lo eliminó del archivo passwd, su uid es "libre" y se asigna a mjane (ya que la useradd
selección de uid es la misma para ambos usuarios en el momento en que useradd
se utilizó el comando).
Los archivos en el disco solo almacenan uid, y NO la traducción del nombre de usuario (ya que esta traducción se define en el archivo de contraseña). Puede confirmar eso emitiendo ls -ln
para ver qué archivos de propiedad de uid tienen.
En realidad, recomendaría que deshabilites en lugar de eliminar cuentas. Se puede lograr el bloqueo de cuentas en la mayoría de las distribuciones de Linux usermod -L -e today <username>
, que bloquea la contraseña y configura la cuenta para que caduque hoy (puede ver la fecha de vencimiento de una cuenta con chage -l
).