Você precisa de permissão de escrita no diretório pai / mãe para excluir qualquer coisa dele. No seu caso, isso é /home
, e como somente o root tem permissões de gravação, apenas o root pode excluir itens dele.
O teste é um diretório que não contém nada, um diretório vazio.
root@localhost:~# ls -l /home
drwxrwxrwx 2 www-data www-data 4096 Apr 26 17:50 test
root@localhost:~# ls -l /home/test
total 0
Agora altero o nome de usuário do root para www-data.
root@localhost:~# su www-data
$ rm -rf /home/test
rm: cannot remove '/home/test': Permission denied
$
Por que não consigo remover o diretório em branco test
, que pertence a www-data?
Pode ser removido quando eu fizer login como root.
root@localhost:~# rm -rf /home/test
root@localhost:~# ls -lZ /home/test
total 0
root@localhost:~# getfacl /home/test/
getfacl: Removing leading '/' from absolute path names
# file: home/test/
# owner: www-data
# group: www-data
user::rwx
group::rwx
other::rwx
root@localhost:~# ls -al /home
total 8352
drwxr-xr-x 10 root root 4096 Apr 26 17:50 .
drwxr-xr-x 22 root root 4096 Mar 20 16:32 ..
drwxrwxrwx 2 www-data www-data 4096 Apr 26 17:50 test
root@localhost:~# ls -al /home/test
total 8
drwxrwxrwx 2 www-data www-data 4096 Apr 26 17:50 .
drwxr-xr-x 10 root root 4096 Apr 26 17:50 ..
root@localhost:~#
Você precisa de permissão de escrita no diretório pai / mãe para excluir qualquer coisa dele. No seu caso, isso é /home
, e como somente o root tem permissões de gravação, apenas o root pode excluir itens dele.
Tags directory permissions rm