Não é possível excluir o arquivo no Fedora

3

Eu tenho um arquivo com a seguinte permissão:

-rwSr-s---. 1 1634630331 1818884080 118784 Jun 29 1970 DailyUpdateClass.class

Se eu tentar excluir este arquivo com o login de root, recebo um erro.

rm: cannot remove ‘model/DailyUpdateClass.class’: Operation not permitted

Eu não posso mudar a propriedade nem posso fazer mais nada.

Eu postei em StackOverflow e tentei algumas coisas mas não ajuda até agora.

Recomendaram-me que eu tentasse isso no Unix Stack Exchange, solicitando sua ajuda.

    
por Srini 11.08.2014 / 12:04

2 respostas

5

Várias possibilidades:

  • o ponto à direita na linha de permissões de arquivo -rwSr-s---. indica permissões estendidas, SE Linux (confirme com ls -lZ ) ou permissões de estilo ACL (confirme com getfacl ) que podem bloquear substituições de raiz.
  • o arquivo ficou imutável com chattr ; confirme os atributos do sistema de arquivos com lsattr
  • O arquivo está em um sistema de arquivos NFS que é exportado com a opção root_squash , que mapeia novamente o usuário raiz remoto para uma conta sem privilégios. Execute o comando rm como o proprietário real do arquivo, por exemplo, %código%
  • o arquivo está em sistema de arquivos somente leitura, confirme com o comando sudo -u <file_owner> rm filename ou mount
  • IIRC você não pode remover as entradas de dispositivos especiais que representam as configurações do kernel, como arquivos nos sistemas de arquivos /proc/mounts e proc , é esse o caso?
por 11.08.2014 / 13:18
1

Seu arquivo tem o conjunto de atributos estendidos immutable , e é por isso que você não pode excluí-lo.

lsattr retorna os atributos estendidos no arquivo:

$ lsattr model/DailyUpdateClass.class
-u-Diad--j------ DailyUpdateClass.class

Você precisará decifrar todas as letras ( -u-Diad--j )

A página man do lsattr dirá para você ver a página man para chattr para uma descrição dos atributos estendidos. Eu listei os relevantes aqui:

When a file with the u attribute set is deleted, its contents are saved. This allows the user to ask for its undeletion. Note: please make sure to read the bugs and limitations section at the end of this document.

When a directory with the D attribute set is modified, the changes are written synchronously on the disk; this is equivalent to the dirsync mount option applied to a subset of the files.

O D one é um pouco preocupante - aparentemente só é usado em diretórios, mas você tem um arquivo.

A file with the i attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

A file with the a attribute set can only be open in append mode for writing. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

A file with the d attribute set is not candidate for backup when the dump(8) program is run.

A file with the j attribute has all of its data written to the ext3 or ext4 journal before being written to the file itself, if the filesystem is mounted with the data=ordered or data=writeback options. When the filesystem is mounted with the data=journal option all file data is already journalled and this attribute has no effect. Only the superuser or a process possessing the CAP_SYS_RESOURCE capability can set or clear this attribute.

Para corrigir isso, use chattr . Por exemplo, para remover os atributos imutáveis e anexados:

# chattr -ia model/DailyUpdateClass.class
    
por 14.08.2014 / 12:26