De atributos de verificação de usuário raiz de arquivos
# lsattr
Se você perceber i
(imutável) ou a
(somente anexo), remova esses atributos:
# man chattr
# chattr -i [filename]
# chattr -a [filename]
Eu tenho um exame de diretório com 2 arquivos. Eu preciso excluir arquivos, mas a permissão é negada. Mesmo o comando rm -rf
não pode excluir esses arquivos. Eu fiz o login como usuário root.
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 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 o OSX (mas não o Linux), a ACL em um arquivo pode impedir sua exclusão; ls -l
mostraria @
no final do campo de permissão se houvesse uma entrada ACL no arquivo.
O acesso como root ignora as permissões, portanto, o root pode excluir arquivos até mesmo em um diretório somente leitura.
A saída de ls -l
mostra um .
no final da coluna de permissão. Isso indica que o arquivo possui um contexto de segurança do SELinux. Ao contrário das permissões básicas e da ACL, o contexto de segurança do SELinux em um arquivo pode controlar quem pode excluí-lo. Além disso, o SELinux nem sempre pode ser ignorado pelo root (é possível ter um processo sendo executado como ID do usuário 0, mas com tão poucos direitos quanto o designer de políticas 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 tem o Linux único ou imutável. atributo . Execute lsattr -d . exam_a
para visualizar os atributos do Linux. Se o atributo a
ou i
estiver ativado, você precisará removê-lo ( chattr -a -i . exam_a
) para excluir o arquivo; apenas root pode fazer isso. A raiz não pode ignorar esses atributos para excluir um arquivo, os atributos precisam ser desativados primeiro.
Ainda outra coisa que impede que um arquivo seja excluído é se o sistema de arquivos for montado como somente leitura, mas você receberá uma mensagem de erro diferente nesse caso.
Tags permissions files rm linux