Não é possível excluir o arquivo, mesmo quando executado como root

43

Estou no processo de migração de uma máquina do RHEL 4 para 5. Em vez de realmente fazer uma atualização, criamos uma nova VM (ambas as máquinas estão em uma nuvem) e estou no processo de copiar dados entre as dois.

Eu encontrei o seguinte arquivo, que eu preciso remover da nova máquina, mas não consigo, mesmo quando rodando como root:

-rw-------  1 2003 2003  219 jan 11 14:22 .bash_history

Este arquivo está dentro de / home / USER /, onde USER é a conta do cara que construiu a máquina. Ele não tem uma conta na máquina antiga, então estou tentando remover sua pasta pessoal para que a nova máquina seja compatível com a antiga, mas recebo o seguinte erro:

rm: ne peut enlever '.bash_history': Opération non permise

(traduzido do francês: não é possível remover XXX, operação não é permitida)

Eu tentei usar o seguinte comando, mas isso não fez diferença:

chattr -i .bash_history

A única opção é criar um usuário com o ID 2003 ou há outra maneira de contorná-lo?

Editar

Eu tentei usar rm -f e recebo o mesmo erro. Eu recebo o mesmo tipo de erro usando chmod 777 primeiro.

Eu consegui chown a pasta que contém o arquivo que estou tentando excluir, então é:

drwx------ 2 root root 1024 jan 24 15:58 USER

Editar2

A execução do comando lsattr , conforme sugerido pelo Angus, forneceu a seguinte saída:

-----a------- USER/.bash_history
------------- USER/..
------------- USER/.

O arquivo é sinalizado como somente anexado - ao alterar esse sinalizador usando chattr -a .bash_history , consegui excluir o arquivo.

    
por Rich 24.01.2012 / 16:15

3 respostas

46

Verifique as permissões do diretório . Para excluir um arquivo dentro dele, ele deve ser gravável por você

chmod ugo+w .

e não imutável ou somente anexado:

chattr -i -a .

Verifique com ls -la e lsattr -a .

    
por 24.01.2012 / 16:31
7

Eu tive um problema semelhante, mas tentei as duas permissões e chattr anteriormente sem sucesso. Raiz no Terminal. CD para o diretório.

No entanto, o que funcionou para mim foi verificar as permissões do diretório onde o arquivo problemático estava localizado - se estiver bem, prossiga para:

chmod ugo+w filename

isso falhou - então:

chattr -i -a filename 

que foi aceito - então

chmod ugo+w 

que foi aceito

rm filename

e foi embora.

Fedora 25 na estação de trabalho hp.

    
por 18.07.2017 / 22:31
1

'sudo' pode executar o comando 'rm' usando o mesmo user.group

NOTA : não tenho certeza se isso também funcionará para IDs como você.

Exemplo:

ls /path/to/dir_being_deleted
  drwxrwxrwx 2 nfsnobody nfsnobody   4096 Mar  8 06:55 .
  drwxrwxrwx 7 nfsnobody nfsnobody   4096 Mar  8 06:57 ..
  -rwxrwxrwx 1 nfsnobody nfsnobody      0 Mar  8 06:55 filename.txt

sudo -u nfsnobody -g nfsnobody rm -rf /path/to/dir_being_deleted
    
por 09.03.2017 / 16:43