Respostas:
Do usuário root, verifique os atributos dos arquivos
# lsattr
se você notar i
(imutável) ou a
(somente anexar), remova esses atributos:
# man chattr
# chattr -i [filename]
# chattr -a [filename]
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, execute ls -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 atributo a
ou i
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.
ls -la
, para que possamos ver as permissões.
(agenda).