Zdá se, že souborový systém Linuxu má vrstvy a vrstvy jemnosti, na které narážím případ od případu:
Mám zájem o úpravu tohoto souboru:
[[email protected] ~]$ ls -l /a/b/c/foo.bar
-rw-rwxr-x 1 user user 144529 Jan 26 2018 /a/b/c/foo.bar
Zdá se, že by do něj měl zapisovat uživatel user
- skutečný? Ale když se pokusím upravit soubor ve vimu, zobrazí se „W10: Warning: Changing a readonly file
” varování.
Vím, že zapisovatelnost souborů závisí na oprávněních složky, která obsahuje. Myslím, že obsahující složka musí mít oprávnění ke spuštění – pravda? Předpokládám, že požadované oprávnění k adresáři sahá také až po /
– pravda?
Zdá se mi, že uvedený soubor obsahující strom složek má oprávnění ke spuštění:
[[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
Pokud z výše uvedeného mohu říci, každý adresář v příslušném stromu má oprávnění ke spuštění. Nejprve jsem byl podezřelý, zda to má co do činění s /
ve vlastnictví root
, ale má oprávnění ke spuštění pro „ostatní“. Navíc, pokud by se vyskytly problémy související s /
ve vlastnictví root
, Představuji si, že bych měl problém se zápisem souborů kamkoli do souborového systému jako uživatel jiný než root
, ale není tomu tak.
Napadá někoho/identifikuje jiné důvody, proč je uvedený soubor považován pouze za čtení?
Přijatá odpověď:
První – jste s neměnným nastaveným příznakem
chattr -i yourfilename
Pokud je nastaven neměnný příznak, nemůžete soubor změnit. Pamatujte, že oprávnění nepřepsala toto chování!
Zadruhé zkontrolujte, zda je adresář, kde je soubor, připojen k jinému disku nebo oddílu , pouze pro čtení, stačí zadat:
mount
(bez argumentů)
Pokud vidíte něco jako váš adresář připojený jako pouze pro čtení, je to důvod! Znovu jej připojte jako čtení a zápis, abyste měli štěstí!
Třetí – a nejčastější , právě používáte systém souborů s chybami , abyste to napravili, musíte zálohovat, co můžete, restartovat, poté se přihlásit v jediném režimu a spustit:
mount #To determine how the partition is mounted
mount -o remount,ro /dev/sd(yourpartition) directory
fsck.ext4 /dev/sd(yourpartition)
(možná bude nutné změnit ext4 na váš typ oddílu)
Hodně štěstí!
Související:Získat čas uživatele a jádra běžícího procesu?