O diabo está nos detalhes, na useradd
página de manual (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, usará o menor uid não utilizado, maior que outros usuários, no arquivo de senha. Visto que a exclusão do sbaxter o removeu do arquivo passwd, seu uid é "livre" e é atribuído a mjane (como o uid useradd
picks é o mesmo para os dois usuários no momento em que o useradd
comando foi usado).
Os arquivos no disco armazenam apenas o uid e NÃO a tradução do nome de usuário (pois essa tradução é definida no arquivo de senha). Você pode confirmar isso emitindo ls -ln
para ver o que os arquivos de propriedade de uid possuem.
Na verdade, eu recomendo que você desative, em vez de excluir contas. É possível obter o bloqueio de contas na maioria das distribuições Linux usermod -L -e today <username>
, que bloqueia a senha e define a conta para expirar hoje (você pode ver a data de validade de uma conta chage -l
).