Por que não é possível excluir um arquivo root?

1

Em um compartilhamento de samba, eu tenho um arquivo .DS_Store em um compartilhamento de rede SMB que está causando estragos. Mesmo como root, eu não posso excluir ou chmod-lo.

-rwx------  1 bob  acme\Domain Users   6148 Apr 24 09:11 .DS_Store*


sudo chmod 777 .DS_Store 
chmod: Unable to change file mode on .DS_Store: Permission denied

sudo rm -rf .DS_Store 
rm: .DS_Store: Permission denied

sudo mv .DS_Store ../
mv: rename .DS_Store to ../.DS_Store: Permission denied

Estranho como a saída de ls mostra que isso é um executável (observe o * no final)

Se eu olhar para um arquivo semelhante na minha área de trabalho, ele terá essas permissões.

-rw-r--r--@   1 bob  acme\Domain Users   16388 May 20 15:10 .DS_Store

stat .DS_Store 
771751940 3458764513820547522 -rwx------ 1 bob acme\Domain Users 0 6148 "Apr 24 09:11:42 2015" "Apr 24 09:11:42 2015" "Apr 24 09:11:42 2015" "Apr 24 09:11:42 2015" 16384 32 0x8000 .DS_Store

Eu posso criar e excluir outros arquivos no mesmo diretório que eu (sem necessidade de sudo)

O arquivo não tem o bit imutável definido, então por que não posso apagá-lo?

Existem outras questões SO relacionadas, mas nenhuma das soluções postadas lá funciona para mim.

Não é possível excluir o arquivo, mesmo como raiz < br> Como criar um arquivo, mesmo usuário root não pode excluí-lo
link

Atualizar

Nada parece estar usando o arquivo de acordo com lsof e fsuer . Estranhamente, eu poderia excluir o arquivo de um computador com Windows.

    
por spuder 20.05.2015 / 23:25

2 respostas

3

Você está usando um sistema de arquivos remoto. Se o servidor não quiser que você exclua um arquivo, não será possível excluir o arquivo. O usuário root local não é necessariamente todo poderoso na máquina remota.

Existe presumivelmente uma lista de controle de acesso na máquina Windows que faz com que o arquivo seja somente leitura ou não deletável por meio de acessos remotos.

    
por 21.05.2015 / 04:33
0

Provavelmente está em uso por um processo solução pode ser fácil: desmontar a parte, verificar processo usando arquivo (use fuser, lsof) e se nenhum processo estiver usando, remova-o

    
por 20.05.2015 / 23:29

Tags