Unixové oprávnění k souborům a adresářům je ve formě struktury 3×3. tj. tři oprávnění (čtení, zápis a spouštění) dostupná pro tři typy uživatelů (vlastník, skupiny a další).
Ve výstupu příkazu ls -l představuje 9 znaků od 2. do 10. pozice oprávnění pro 3 typy uživatelů.
-rw-r--r-- 1 sathiya sathiya 272 Mar 17 08:22 test.txt
Ve výše uvedeném příkladu:
- Uživatel (sathiya) má oprávnění ke čtení a zápisu
- Skupina má oprávnění ke čtení
- Ostatní mají oprávnění ke čtení
Tři oprávnění k souboru:
- číst :povoleno číst obsah souboru.
- pište :povoleno zapisovat do souboru.
- provést :povoleno spustit soubor jako program/skript.
Oprávnění ke třem adresářům:
- číst :povoleno číst obsah adresáře (prohlížet soubory a podadresáře v tomto adresáři).
- pište :povoleno zapisovat do adresáře. (vytvářejte soubory a podadresáře v tomto adresáři)
- provést :povoleno vstoupit do tohoto adresáře.
Číselné hodnoty pro oprávnění ke čtení, zápisu a spouštění:
- přečtěte si 4
- napište 2
- provést 1
Chcete-li mít kombinaci oprávnění, přidejte požadovaná čísla. Například pro oprávnění ke čtení a zápisu je to 4+2 =6.
Změňte oprávnění k souborům a adresářům pomocí příkazu Chmod
Ke změně oprávnění souboru nebo adresáře můžete použít buď osmičkovou reprezentaci, nebo symbolickou reprezentaci.
Osmičková reprezentace pro oprávnění:
- První číslo je pro uživatele
- Druhé číslo je pro skupinu
- Třetí číslo je pro ostatní
Například dejte read, write ( 4+2 =6 ) uživateli a read ( 4 ) skupině a dalším.
$ chmod 644 filename
Například dejte read, execute ( 4 + 1 =5 ) uživateli a read (4) skupině a nic ( 0 ) ostatním.
$ chmod 540 filename
Například dejte read, write ( 4 + 2 =6 ) uživateli a nic ( 0 ) skupině a read ( 4 ) ostatním.
$ chmod 604 filename
Umask 022 je odpovědný za výchozí oprávnění souboru
Výchozí hodnota umask je 0022, která určuje výchozí oprávnění pro nový soubor nebo adresář. Výchozí oprávnění pro adresář je 0777, pro soubory jsou oprávnění 0666, z čehož se odečte výchozí hodnota umask 0022 pro získání nově vytvořených souborů nebo oprávnění k adresáři.
Konečné výchozí oprávnění pro soubor se vypočítá následovně:
- Výchozí oprávnění k souboru:666
- Výchozí umask:022
- Konečné výchozí oprávnění k souboru:644
Konečné výchozí oprávnění pro adresář se vypočítá podle následujícího obrázku:
- Výchozí oprávnění k adresáři:777
- Výchozí umask:022
- Konečné výchozí oprávnění k adresáři:755
Hodnotu umask můžete změnit na odpovídající hodnotu toho, co potřebujete na základě výše uvedeného výpočtu. Pokud například nechcete, aby se souborem nebo adresářem cokoliv dělal někdo jiný než uživatel (vlastník), můžete zadat umask jako 0077.
$ umask 0077
Poté, pokud vytvoříte soubor nebo adresář, bude mít oprávnění pouze pro uživatele, jak je uvedeno níže:
$ > testfile $ ls -l testfile -rw------- 1 sathiya sathiya 0 Mar 17 08:23 testfile