O diabo está nos detalhes, na página useradd
man (você pode ver isso emitindo 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.
Portanto, o padrão será usar o menor uid não usado, que é maior que os outros usuários, no arquivo de senha. Vendo como deletar o sbaxter removeu-o do arquivo passwd, seu uid é "free" e é atribuído ao mjane (já que o uid useradd
picks é o mesmo para ambos os usuários no momento em que o comando useradd
foi usado).
Arquivos no disco armazenam apenas o uid, e NÃO a tradução do nome do usuário (como esta tradução está definida no arquivo de senha). Você pode confirmar isso emitindo ls -ln
para ver o que os arquivos de propriedade uid possuem.
Eu recomendaria que você desativasse em vez de excluir contas. O bloqueio de contas na maioria das distribuições Linux pode ser obtido com usermod -L -e today <username>
, que bloqueia a senha e define a conta para expirar hoje (você pode ver a data de expiração de uma conta com chage -l
).