Eu tenho exame de diretório com 2 arquivos nele. Preciso excluir arquivos, mas a permissão é negada. Mesmo o rm -rf
comando não pode excluir esses arquivos. Eu entrei como um usuário root.
linux
files
permissions
rm
Mongrel
fonte
fonte
ls -la
, para que possamos ver as permissões.
(agenda).Respostas:
Do usuário root, verifique os atributos dos arquivos
se você notar
i
(imutável) oua
(somente anexar), remova esses atributos:fonte
O motivo mais comum para
rm
reclamar que você não tem permissão para excluir um arquivo é que as permissões no diretório proíbem a exclusão do arquivo. Para excluir um arquivo, você precisa de permissão de gravação no diretório. As permissões no arquivo são irrelevantes (rm
sem-f
solicitações de confirmação antes de excluir um arquivo somente leitura, mas isso é apenas uma confirmação, não uma limitação). Em algumas variantes do Unix, como OSX (mas não Linux), a ACL em um arquivo pode impedir sua exclusão;ls -l
apareceria@
no final do campo de permissão se houvesse uma entrada ACL no arquivo.O acesso como root ignora as permissões, de modo que o root pode excluir arquivos mesmo em um diretório somente leitura.
A saída de
ls -l
mostra a.
no final da coluna de permissão. Isso indica que o arquivo possui um contexto de segurança SELinux. Diferentemente das permissões básicas e da ACL, o contexto de segurança do SELinux em um arquivo pode controlar quem tem permissão para excluí-lo. Além disso, o SELinux nem sempre pode ser ignorado pelo root (é possível ter um processo sendo executado como ID de usuário 0, mas com tão poucos direitos quanto o designer de política do SELinux escolheu). Para ver o que o contexto do SELinux permite, executels -lZ . exam_a
.Outra coisa que pode impedir que um arquivo seja excluído é se ele ou o diretório que o contém possui o atributo Linux somente anexado ou imutável . Execute
lsattr -d . exam_a
para visualizar os atributos do Linux. Se o atributoa
oui
estiver ativado, será necessário removê-lo (chattr -a -i . exam_a
) para excluir o arquivo; somente a raiz pode fazer isso. A raiz não pode ignorar esses atributos para excluir um arquivo; os atributos devem ser desativados primeiro.Outra coisa que impede que um arquivo seja excluído é se o sistema de arquivos estiver montado como somente leitura, mas você receberá uma mensagem de erro diferente nesse caso.
fonte