GNU/Linux >> Znalost Linux >  >> Linux

Linux – nejasné důvody, proč je soubor pouze pro čtení?

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?
Linux
  1. Co je uživatel Linuxu?

  2. Úvod do monitorování uživatelských účtů v Linuxu

  3. Linux – všechno je soubor?

  1. Jak přesunout soubor v Linuxu

  2. Vysvětlení oprávnění souborů v systému Linux

  3. Linux su příkaz

  1. Linux Tail Command

  2. Linux Touch Command

  3. Cat Command v Linuxu