
Quando eu crio um diretório como usuário root com permissão 777, posso excluí-lo quando estou logado como usuário padrão, mas quando efetuo login como usuário a
ou b
, não consigo excluí-lo. Está mostrando permissão negada.
Minha pergunta é: por que meu usuário padrão pode excluir aquela pasta criada pelo root e por que outros usuários não podem, embora todos tenham permissão 777.
Responder1
Se um usuário tiver permissões de gravação e execução em um diretório, ele poderá excluir qualquer arquivo ou diretório nele contido, independentemente de sua propriedade. Isso ocorre porque a exclusão de um arquivo ou subdiretório de um diretório é uma modificação no diretório, não na coisa que está sendo excluída.
Exemplo: eu crio um diretório de propriedade de root em um diretório de minha propriedade e, em seguida, excluo-o.
$ sudo mkdir directory
$ ls -l
total 4
drwxr-xr-x 2 root wheel 512 Nov 25 11:11 directory
$ rmdir directory
$ ls -l
(sem saída)
Agora, se o subdiretóriocontém arquivos, então as permissões nesse diretório se tornam mais interessantes:
$ sudo mkdir directory
$ sudo touch directory/file
$ rm -rf directory
rm: directory/file: Permission denied
rm: directory: Directory not empty
Aqui não consigo deletar o subdiretório porque não tenho permissão para deletar o arquivo que está dentro dele.
Mas você diz que as permissões estão definidas como 777
, o que significa que qualquer pessoa pode excluir os arquivos dentro dela:
$ sudo chmod 777 directory
$ rm -rf directory
(sem erro)
Outro usuário no meu sistema ainda não conseguiria fazer isso, pois não tem permissão de gravação no diretório onde estou trabalhando, emborapoderiaainda exclua oconteúdodo subdiretório de propriedade raiz, se esse diretório fosse acessível a eles (os usuários precisariam de permissões de execução no diretório etodos os diretórios pais).