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.

Referências