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?