GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:oscuri motivi per cui un file è di sola lettura?

Il filesystem di Linux sembra avere livelli e livelli di sottigliezza in cui mi imbatto caso per caso:

Sono interessato a modificare questo file:

[[email protected] ~]$ ls -l /a/b/c/foo.bar
-rw-rwxr-x    1 user   user      144529 Jan 26  2018 /a/b/c/foo.bar

Sembra che dovrebbe essere scrivibile dall'utente user - VERO? Ma quando provo a modificare il file in vim, ottengo un "W10: Warning: Changing a readonly file ” avviso.

So che la scrivibilità dei file dipende dai permessi della sua cartella che li contiene. Penso che la cartella contenente debba avere l'autorizzazione di esecuzione – vero? Presumo che anche l'autorizzazione alla directory richiesta si estenda fino a / – vero?

Mi sembra che l'albero delle cartelle contenente il file annotato abbia i permessi di esecuzione:

[[email protected] ~]$ ls -ld /a/b/c/                                                                                    
drwxrwxrwx    2 user   user       36864 Mar  5 17:50 /a/b/c/
[[email protected] ~]$ ls -ld /a/b/           
drwxrwxr-x    4 user   user        4096 Sep 22  2017 /a/b/
[[email protected] ~]$ ls -ld /a/                
drwxrwxr-x    9 user   user        4096 Sep 15  2017 /a/
[[email protected] ~]$ ls -ld /     
drwxr-xr-x   24 root   root           0 Aug 24 10:48 /
[[email protected] ~]$ whoami
user

Per quanto posso dire da quanto sopra, ogni directory nell'albero pertinente ha i permessi di esecuzione. All'inizio ero sospettoso se avesse a che fare con / essendo di proprietà di root , ma ha il permesso di esecuzione per "altri". Inoltre, in caso di problemi relativi a / essendo di proprietà di root , immagino che avrei problemi a scrivere file in qualsiasi punto del filesystem come utente diverso da root , ma non è così.

Qualcuno può pensare/identificare altri motivi per cui il file annotato è considerato di sola lettura?

Risposta accettata:

Prima – sei con flag immutabile impostato

chattr -i yourfilename

Se è impostato il flag immutable non è possibile modificare il file. Ricorda che le autorizzazioni non hanno annullato quel comportamento!

Secondo, controlla se la directory in cui si trova il file è montata in un altro disco o partizione , in sola lettura, per quello digita:

mount 

(senza argomenti)

Se vedi qualcosa come la tua directory montata come di sola lettura, c'è il motivo! Rimontalo in lettura-scrittura per avere fortuna!

Terzo – e più comune , stai solo eseguendo un filesystem con errori , per correggere ciò, devi eseguire il backup di ciò che puoi, riavviare, quindi accedere in modalità singola ed eseguire:

mount #To determine how the partition is mounted
mount -o remount,ro /dev/sd(yourpartition) directory
fsck.ext4 /dev/sd(yourpartition)

(ext4 potrebbe essere necessario modificare il tipo di partizione)

Buona fortuna!

Correlati:ottenere l'ora dell'utente e del kernel di un processo in esecuzione?
Linux
  1. Come spostare un file in Linux

  2. Che cos'è un utente Linux?

  3. Un'introduzione al monitoraggio dell'account utente Linux

  4. Linux:tutto è un file?

  5. Comando su Linux

Comando Gzip in Linux

Su Command in Linux (Cambia utente)

Comando ID in Linux

Permessi dei file Linux:tutto ciò che devi sapere

Esempi di comandi chown di Linux

Che cos'è il file /etc/passwd in Linux?