Číselná oprávnění chmod: co znamenají 600, 644, 700 a 755
Pochopte číselná oprávnění chmod, vyberte bezpečný režim pro soubory i adresáře a ověřte výsledek bez riskantních změn.
Spustit interaktivní lekciTřímístný režim příkazu chmod nastavuje oprávnění pro vlastníka, skupinu a ostatní uživatele, a to právě v tomto pořadí. Každá číslice je součtem hodnot pro čtení (4), zápis (2) a spuštění souboru nebo vstup do adresáře (1). Například chmod 640 report.txt povolí vlastníkovi čtení a zápis, skupině pouze čtení a ostatním odepře přístup. V lekci o číselných oprávněních si můžete převod číslic bezpečně procvičit.
Jak sestavit jednu číslici oprávnění
Každá skupina uživatelů dostane hodnotu od 0 do 7:
| Číslo | Oprávnění | Význam |
|---|---|---|
| 0 | --- | žádný přístup |
| 1 | --x | spuštění souboru nebo vstup do adresáře |
| 2 | -w- | zápis |
| 3 | -wx | zápis + spuštění/vstup |
| 4 | r-- | čtení |
| 5 | r-x | čtení + spuštění/vstup |
| 6 | rw- | čtení + zápis |
| 7 | rwx | čtení + zápis + spuštění/vstup |
Tři číslice spojte v pořadí vlastník-skupina-ostatní. Režim 754 tedy znamená rwxr-xr--.
Režim vybírejte podle cíle, ne podle naučeného seznamu
Následující režimy jsou běžným výchozím bodem. Správná volba ale závisí na tom, kdo má danou cestu používat:
| Režim | Typický význam |
|---|---|
600 | soukromý soubor, který smí číst a měnit jen vlastník |
640 | vlastník čte a zapisuje; skupina čte; ostatní nemají přístup |
644 | vlastník čte a zapisuje; všichni ostatní pouze čtou |
700 | soukromý adresář nebo spustitelný soubor dostupný jen vlastníkovi |
750 | vlastník má plný přístup; skupina může číst a vstoupit; ostatní nemohou nic |
755 | vlastník může měnit; všichni mohou číst a vstoupit nebo spustit |
Nastavte režim jednomu známému cíli:
chmod 640 report.txt
chmod 750 scripts
Adresáře potřebují bit x, aby do nich šlo vstoupit a přistupovat k pojmenovaným položkám uvnitř. Adresář s právem čtení, ale bez práva vstupu může za určitých okolností vypsat názvy, běžný přístup k těmto položkám však stále znemožní. Proto prosté převzetí režimu běžného souboru pro adresář často vede k matoucím chybám.
Ověřte výsledek v symbolickém zápisu
Po změně režim zkontrolujte:
ls -l report.txt
ls -ld scripts
U běžného souboru s režimem 640 by řetězec oprávnění měl začínat -rw-r-----. U adresáře s režimem 750 by měl začínat drwxr-x---. První znak popisuje typ souboru, dalších devět znaků představuje oprávnění vlastníka, skupiny a ostatních.
Číselný a symbolický zápis řeší odlišné úkoly
Číselný režim určuje kompletní sadu běžných oprávnění, kterou chcete nastavit. Symbolická změna upravuje jen vybrané bity vzhledem k aktuálnímu režimu:
chmod g+w shared.txt
chmod o-r private.txt
Symbolický zápis použijte, když chcete například „přidat skupině právo zápisu“, aniž byste přepsali ostatní oprávnění. Číselný zápis je vhodný, když jste záměrně vybrali celý režim pro vlastníka, skupinu i ostatní. Speciální bity setuid, setgid a sticky přidávají další číslici; před jejich použitím je potřeba je posoudit samostatně.
Vyhněte se příkazu chmod -R 777 jako rychlé opravě problému. Všem uživatelům udělí všechna běžná oprávnění a změnu použije i na cesty, které jste nemuseli zkontrolovat. Začněte jedním cílem, ověřte ho a rozsah rozšiřte jen tehdy, když mají všichni potomci skutečně potřebovat stejná pravidla.
Rozhodnutí mezi 600 a 700 u SSH vysvětluje článek jak chránit soubory SSH. Oktalové hodnoty a chování speciálních režimů definuje dokumentace číselných režimů GNU.
Reference
Tyto odkazy na dokumentaci poskytují spolehlivé informace o příkazech použitých v tomto článku.
Další
Pro soukromý klíč SSH použijte chmod 600 a pro jeho adresář 700. Před dalším připojením ověřte oprávnění i vlastníka.