rm: impossibile rimuovere la directory /: autorizzazione negata


17

Ho creato una directory chiamata "shadi" e ho impostato questa autorizzazione

sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul  1 01:58 shadi

In questa situazione ho i permessi "altri", ma perché non posso cancellarlo?

sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied

Risposte:


25

Qui il problema è che non si dispone dell'autorizzazione "w" per la /homedirectory. Durante l'eliminazione di un file, nota che non stai scrivendo su quel file ma stai modificando il contenuto della directory che contiene il file, quindi avere l'autorizzazione "w" sulla directory è un must se vuoi eliminare qualsiasi file dalla directory.

screenshot terminale di "ls -ld / home"

Se mi trovo in una directory con l'autorizzazione "w", posso eliminare qualsiasi suo file senza preoccuparmi dell'autorizzazione del file stesso. Nota che la mia directory attuale è /home/rohithche ha i permessi "w" e quindi posso cancellare qualsiasi suo file indipendentemente dai permessi dei file.

screenshot terminale della rimozione di / home / rohith / shadi

Se lo stesso file viene creato nella directory '/ home' che non ha l'autorizzazione "w", ottengo lo stesso output del tuo! :)

screenshot terminale del tentativo di rimuovere / home / shadi


8

Ciò accade perché non si possiede la directory, è di proprietà di "root" e del gruppo "root". Quindi per eliminarlo puoi modificare la proprietà e quindi eliminarla (qui elimini i tuoi diritti e diventi 'root' per assumere la proprietà):

sudo chown $USER:$USER ./shadi
rm -r ./shadi

Oppure salti la presa della proprietà e fai un sudo rmper elevare i tuoi diritti e diventare "root" per la cancellazione:

sudo rm -r ./shadi

significa che solo i proprietari possono eliminare i file?
Sinoosh,

Sì, oppure devi elevare i tuoi diritti con il sudocomando. questo ti chiederà la tua password e diventerai 'root' per il comando seguente.
Videonauth,

se ora "shadi" fosse un file posso rimuoverlo con l'utente "sinoosh". Non è necessario "sudo" non crea scena per me perché non funziona con la directory
Sinoosh,

6

Prova questo:

sudo rm -r ./shadi

Le autorizzazioni mostrano il proprietario root e il gruppo root, quindi devi usare sudo.


1
Sì, questo comando è ok, ma il mio problema è il motivo per cui rm non funziona con queste autorizzazioni, ho le autorizzazioni complete per questa directory in un altro campo
Sinoosh,

"Ho i permessi completi per questa directory" No, non è così. "altro campo" shadi non è "altri".
Rinzwind,

ma "sinoosh" appartiene ad altri ed esegue "rm -r
shadi

0

Sono account diversi.

Come ti aspetteresti la sicurezza dal tuo account, se tutti avessero il permesso di cancellare la tua home directory?

Non si dispone wdell'autorizzazione per eliminare la home directory di qualcun altro per impostazione predefinita, tranne se lo chmod +wè.

Ecco le diverse autorizzazioni e un esempio ( -rwxr-x---/ rwxrx):

+ - + - + - + - +
| + | U | g | o |
+ - + - + - + - +
| R | 1 | 1 | 1 |
+ - + - + - + - +
| w | 2 | 2 | 2 |
+ - + - + - + - +
| x | 4 | 4 | 4 |
+ - + - + - + - +
| * | 7 | 5 | 0 |
+ - + - + - + - +
Esso va come questa: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, quindi 750, vale a dire un sistema di autorizzazione ideale. Il proprietario ( uin questo caso) può leggere, scrivere ed eseguire il file, il gruppo del proprietario ( gin questo caso) può leggere ed eseguire e chiunque altro ( oin questo caso) non può fare nulla. Questo è il leggendario:
u: utente corrente (utente)
g: gruppi di utenti attuali (gruppi)
o: non gruppi di utenti correnti (altri)
r: permesso di lettura (Leggi)
w: permesso di scrittura (Scrivi)
x: autorizzazione di esecuzione (X-ecute)
.

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.