GNU/Linux >> Znalost Linux >  >> Linux

Proč musí být složka spustitelná?

Adresáře (v *nix se obvykle nenazývají složky) mají pro bity oprávnění jiný význam než normální soubory.

U adresářů umožňuje zápis vytvářet nové soubory a mazat soubory v nich.

Číst vám umožňuje zobrazit seznam souborů v něm.

Execute vám umožňuje vstoupit do něj a přistupovat k souborům (nebo jiným adresářům) uvnitř.


Protože nemůžete 'spustit' adresář, byl lépe využit prováděcí bit. Spouštěcí bit v adresáři vám umožňuje přístup k položkám, které jsou v adresáři, i když nemůžete vypsat obsah adresáře.

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

Z chmod manuálová stránka:

Písmena rwxXst vybírají bity režimu souboru pro dotčené uživatele:čtení (r), zápis (w), spuštění (nebo hledání adresářů) (x) , spouštět/hledat pouze v případě, že soubor je adresář nebo již má oprávnění ke spuštění pro některého uživatele (X), nastavit ID uživatele nebo skupiny na spuštění (s), příznak omezeného smazání nebo lepivý bit (t).


Oprávnění k provedení v adresáři vám umožňují procházet jej a využívat prostředky v něm obsažené.


Linux
  1. Jak odstranit adresář a složku v Linuxu?

  2. Proč může Rm odebrat soubory pouze pro čtení?

  3. Proč bylo „~“ vybráno k reprezentaci domovského adresáře?

  1. Proč je to Rm -rf a ne Rmdir -rf?

  2. Proč je hlavička programu spustitelná?

  3. Proč můj symbolický odkaz vytváří soubor a ne složku?

  1. proč nefunguje sftp rmdir?

  2. Proč jsou soubory .so spustitelné?

  3. Proč je kořenový adresář označen znakem /?