GNU/Linux >> Linux Esercitazione >  >> Linux

Perché non posso eliminare questo file come root?

Dall'utente root controlla gli attributi dei file

# lsattr 

se noti i (immutabile) o a (append-only), rimuovi questi attributi:

# man chattr
# chattr -i [filename]
# chattr -a [filename]

Il motivo più comune per rm lamentarsi di non avere il permesso di eliminare un file, è che i permessi sulla directory ti vietano di eliminare il file. Per eliminare un file, è necessario il permesso di scrittura sulla directory. I permessi sul file sono irrilevanti (rm senza -f richiede conferma prima di eliminare un file di sola lettura, ma questa è solo una conferma, non una limitazione). Su alcune varianti Unix come OSX (ma non Linux), l'ACL su un file può impedirne l'eliminazione; ls -l mostrerebbe @ alla fine del campo di autorizzazione se c'era una voce ACL sul file.

L'accesso come root ignora i permessi, quindi root può eliminare i file anche in una directory di sola lettura.

L'output di ls -l mostra un . alla fine della colonna dei permessi. Questo indica che il file ha un contesto di sicurezza SELinux. A differenza delle autorizzazioni di base e dell'ACL, il contesto di sicurezza di SELinux su un file può controllare chi è autorizzato a eliminarlo. Inoltre SELinux non può sempre essere aggirato da root (è possibile avere un processo in esecuzione come ID utente 0 ma con pochi diritti scelti dal progettista della politica di SELinux). Per vedere cosa ti permette di fare il contesto SELinux, esegui ls -lZ . exam_a .

Un'altra cosa che può impedire l'eliminazione di un file è se esso o la directory che lo contiene ha l'attributo Linux append-only o immutable. Esegui lsattr -d . exam_a per visualizzare gli attributi di Linux. Se a o i è attivo, dovrai rimuoverlo (chattr -a -i . exam_a ) per eliminare il file; solo root può farlo. Root non può ignorare questi attributi per eliminare un file, gli attributi devono essere prima disattivati.

Un'altra cosa che impedisce l'eliminazione di un file è se il filesystem è montato in sola lettura, ma in tal caso riceverai un messaggio di errore diverso.


Linux
  1. Come eliminare il file di posta principale (cassetta postale) in Linux

  2. Perché non posso dividere un file .ape?

  3. Perché i file non possono essere manipolati da inode?

  4. Utente non presente nel file sudoers. Questo incidente verrà segnalato

  5. Come eliminare file con questo nome su Linux:-]???????q

Dov'è il file di intestazione <conio.h> su Linux? Perché non riesco a trovare <conio.h>?

Perché Vim aggiunge una nuova riga? È una convenzione?

Perché la directory principale è indicata da un segno /?

Perché rm manual dice che possiamo eseguirlo senza alcun argomento, quando questo non è vero?

Non riesco a eliminare i file 'rm:impossibile rimuovere il file system di sola lettura X'

Perché sono stato in grado di eliminare un file di proprietà di root nella mia home directory senza essere root?