Não existe algo como "vários usuários têm um mesmo UID" . Um UID identifica um usuário. Mesmo UID, mesmo usuário.
O que você criou são duas maneiras diferentes para o mesmo usuário efetuar login. O usuário é UID 0. O UID 0 pode efetuar login com o nome root
, com a senha definida na entrada root
de /etc/shadow
, e quando essas credenciais são usadas, a variável de ambiente HOME
é definida como /root
e o programa /bin/bash
é executado. O UID 0 também pode efetuar login com o nome testuser
, com a senha definida na entrada testuser
de /etc/shadow
, e quando essas credenciais são usadas, a variável de ambiente HOME
é definida como /root/testuser
e o programa /bin/bash
é executado.
O kernel só sabe sobre o ID do usuário, não sobre o nome do usuário. O sistema de arquivos armazena apenas o ID do usuário, não os nomes dos usuários. Os nomes de usuários não são usados para controle de acesso a objetos do sistema, como arquivos e processos. A maioria dos programas converte IDs de usuários em nomes de usuários quando eles precisam exibir informações envolvendo um usuário e de nomes de usuários a IDs de usuários quando precisam implementar alguma política envolvendo um usuário.
Os arquivos que você visualizou pertencem ao usuário 0. Quando você executa ls
, ele recebe as informações de que o proprietário do arquivo é 0 e recupera as informações sobre o usuário 0 para exibi-lo de uma maneira mais amigável. Isso normalmente retorna a primeira entrada em /etc/passwd
, não consigo explicar por que você está vendo testuser
ocasionalmente.
Muitas ferramentas assumem implicitamente que existe uma correspondência de um para um entre os nomes de usuário e os IDs de usuário, portanto, o comportamento se um usuário tiver vários nomes nem sempre é o ideal. Você não deveria fazer isso; geralmente funciona, mas você precisa estar preparado para lidar com a ocasional esquisitice.