Non riesco a rimuovere un albero di directory con rm -rf


9

Questo mi sembra molto strano. Sto eseguendo il kernel 2.6.37.2 e ho eseguito:

~]$ cp -r /proc/ here
~]$ rm -rf here

Ottengo il rifiuto di un permesso quando copio come previsto e alla fine premo Control-C. Ottengo Permission deniedmolti file quando provo a rimuovere la nuova directory e i file.

Come nota, ho trovato questo strano comportamento perché un amico mi ha inviato .tgzun'istantanea della sua /procregia. Ho estratto la directory e quando ho finito di cercarla ho avuto lo stesso problema.

rm -rf come root funziona.

lsattr mostra l'attributo e (che è quello che mostrano tutti i miei file / directory).


Ho generalizzato un po 'il titolo della tua domanda perché il problema principale non riguarda /proc. A proposito, è un po 'tardi per questa volta, ma se capisci la risposta dopo aver pubblicato la domanda, va bene rispondere da solo e lasciarlo per altre persone che potrebbero incorrere in un problema simile.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


16

Se è presente una directory non vuota in cui non si dispone dell'autorizzazione di scrittura, non è possibile rimuoverne il contenuto.

$ mkdir foo
$ touch foo/bar
$ chmod a-w foo
$ rm -rf foo
rm: cannot remove `foo/bar': Permission denied

Il motivo è che rmè vincolato da autorizzazioni come qualsiasi altro comando e l'autorizzazione a rimuovere barrichiede l'autorizzazione in scrittura foo. Questo non si applica quando si esegue rmcome root perché root ha sempre l'autorizzazione per rimuovere un file.

Per rendere cancellabile l'albero delle directory, rendere scrivibili tutte le directory in esso contenute (le autorizzazioni dei file normali non contano quando si tratta di eliminarle con rm -f). Puoi usare uno di questi comandi:

chmod -R u+w here        # slow if you have a lot of regular files
find here -type d -exec chmod u+w {} +

Sempre lo stesso risultato "Operazione non consentita"
Legionar
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.