GNU/Linux >> Znalost Linux >  >> Linux

Spustit vs bit čtení. Jak fungují adresářová oprávnění v Linuxu?

Při aplikování oprávnění na adresáře v Linuxu mají bity oprávnění jiný význam než u běžných souborů.

  • Bit čtení (r ) umožňuje postiženému uživateli vypsat seznam souborů v adresáři
  • Bit zápisu (w ) umožňuje dotčenému uživateli vytvářet, přejmenovávat nebo mazat soubory v adresáři a upravovat atributy adresáře
  • Bit provedení (x ) umožňuje postiženému uživateli vstoupit do adresáře a přistupovat k souborům a adresářům uvnitř
  • lepkavý bit (T nebo t pokud je spouštěcí bit nastaven pro ostatní) uvádí, že soubory a adresáře v tomto adresáři smí smazat nebo přejmenovat pouze jejich vlastník (nebo root)

Nejprve se zamyslete:Co je to adresář? Je to pouze seznam položek (souborů a jiných adresářů), které v něm žijí. Tedy:adresář =seznam jmen.

Přečtěte si =Pokud je nastaveno, můžete si tento seznam přečíst. Pokud tedy máte například adresář s názvem poems :

  • Můžete ls poems a získáte seznam položek žijících uvnitř (-l neprozradí žádné podrobnosti!).
  • Můžete použít dokončování z příkazového řádku, tj. touch poems/so <TAB> poems/somefile .
  • Nemůžete udělat poems váš pracovní adresář (tj. cd do něj).

Zapsat bit =Pokud je nastaveno, můžete tento seznam upravit, tj. můžete v něm {přidat, přejmenovat, smazat} jména. Ale! Ve skutečnosti to můžete udělat, pouze pokud je nastaven i prováděcí bit.

Spustit bit =Udělejte z tohoto adresáře svůj pracovní adresář, tj. cd do toho. Toto oprávnění potřebujete, pokud chcete:

  • přístup (čtení, zápis, spouštění) k položkám, které v nich žijí.
  • upravit samotný seznam, tj. přidat, přejmenovat, odstranit jména v něm (samozřejmě musí být v adresáři nastaven zápisový bit).

Zajímavý případ 1 :Pokud máte oprávnění k zápisu a spouštění v adresáři, můžete {delete,rename} položky, které v něm žijí, i když nemáte oprávnění k zápisu na tyto položky. (abyste tomu zabránili, použijte lepivý bit)

Zajímavý případ 2 :Pokud máte oprávnění ke spuštění (ale ne k zápisu) do adresáře A máte oprávnění k zápisu do souboru, který se v něm nachází, nemůžete soubor smazat (protože to znamená jeho odstranění ze seznamu). Jeho obsah však můžete vymazat např. pokud se jedná o textový soubor, můžete jej pomocí vi otevřít a vše smazat. Soubor tam bude stále, ale bude prázdný.

Shrnutí:

Přečtěte si =Můžete si přečíst jména v seznamu.
Zapsat bit =Můžete {přidat, přejmenovat, smazat} jména v seznamu, POKUD je nastaven také spouštěcí bit.
Spustit bit =Z tohoto adresáře můžete vytvořit svůj pracovní adresář.

PS:Článek zmiňovaný Kusalanandou se dobře čte.


Připravil jsem tuto tabulku se všemi možnými oprávněními a jejich praktickými účinky.

(*) Pouze názvy souborů :další atributy jako velikost nebo datum nejsou dostupné. Např. k automatickému dokončování můžete použít klávesu tab, ale ne příkaz ls.

Některé myšlenky :

  • S X nenastaveno , R a W jsou většinou k ničemu.
  • X sám zakázání RW vám dává falešný pocit bezpečí, protože můžete slepě číst a zapisovat obsah souborů a přistupovat k podadresářům. Měli byste si být jisti, že každý přímý potomek adresáře má explicitní oprávnění.
  • Jiné hodnoty než:
      použijete jen zřídka
    • 0 :Žádný přístup.
    • 1 :Minimální přístup umožňující procházení.
    • 5 :Umožňuje čtení/zápis, ale nemění strukturu samotného adresářového stromu.
    • 7 :Plný přístup.

Linux
  1. Linux – spouštění versus čtení bit. Jak fungují adresářová oprávnění v Linuxu?

  2. Jak získat velikost adresáře v Linuxu

  3. Pochopení toho, jak Umask řídí počáteční oprávnění k souborům / adresářům v Linuxu

  1. Jak spravovat oprávnění/vlastnictví souborů a adresářů v Linuxu

  2. Jak spustit soubor python v linuxu

  3. Jak číst manuálové stránky Linuxu?

  1. Jak aktualizovat symbolický odkaz pro Linux

  2. Jak přejmenovat adresář v Linuxu

  3. Jak gzipovat adresář v Linuxu