Exclusão de usuários a partir da linha de comando
O comando userdel username
remove o usuário username de /etc/passwd
, mas deixa o diretório pessoal do usuário intacto.
O comando userdel -r
username remove o usuário /etc/passwd
e exclui o diretório pessoal do usuário.
Quando você remove um usuário sem especificar a opção userdel -r
, os arquivos do usuário agora são de propriedade de uma UID não atribuída. Se você criar um usuário e esse usuário receber a UID do usuário excluído, a nova conta será proprietária desses arquivos, o que é um risco de segurança. Normalmente, as políticas de segurança da organização não permitem a exclusão de contas de usuário e, em vez disso, bloqueiam seu uso, para evitar esse cenário.
O exemplo a seguir demonstra como isso pode levar ao vazamento de informações:
[root@host ~]# useradd user01
[root@host ~]# ls -l /home
drwx------. 3 user01 user01 74 Mar 4 15:22 user01
[root@host ~]# userdel user01
[root@host ~]# ls -l /home
drwx------. 3 1000 1000 74 Mar 4 15:22 user01
[root@host ~]# useradd -u 1000 user02
[root@host ~]# ls -l /home
drwx------. 3 user02 user02 74 Mar 4 15:23 user02
drwx------. 3 user02 user02 74 Mar 4 15:22 user01
Observe que o user02
agora é proprietário de todos os arquivos dos quais o user01
era proprietário anteriormente. O usuário root pode usar o comando find / -nouser -o -nogroup
para localizar todos os arquivos e diretórios sem proprietários.