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
nebot
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.