CMD Master
Zpět na blog
AktualizovánoArnošt Havelka

Čí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í lekci
Číselná oprávnění chmod: co znamenají 600, 644, 700 a 755

Tří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:

ČísloOprávněníVýznam
0---žádný přístup
1--xspuštění souboru nebo vstup do adresáře
2-w-zápis
3-wxzápis + spuštění/vstup
4r--čtení
5r-xčtení + spuštění/vstup
6rw-čtení + zápis
7rwxč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žimTypický význam
600soukromý soubor, který smí číst a měnit jen vlastník
640vlastník čte a zapisuje; skupina čte; ostatní nemají přístup
644vlastník čte a zapisuje; všichni ostatní pouze čtou
700soukromý adresář nebo spustitelný soubor dostupný jen vlastníkovi
750vlastník má plný přístup; skupina může číst a vstoupit; ostatní nemohou nic
755vlastní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ší

Oprávnění klíčů SSH: kdy použít chmod 600 nebo 700

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.