Utilia

Kalkulačka chmod

Převáděj oprávnění souborů v Unixu mezi zaškrtávacími poli, osmičkovým (755) a symbolickým (rwxr-xr-x) zápisem, se speciálními bity a příkazy chmod.

Oprávnění
TřídaČtení (4)Zápis (2)Spuštění (1)
Vlastník (u)
Skupina (g)
Ostatní (o)
Speciální bity

Příkazy

Číselný
Symbolický
Jak to ukáže ls -l
Relativní změna z {from}

Kdo co může

    Běžné předvolby

    Jak používat kalkulačku chmod

    1. Začni libovolnou reprezentací: zaškrtni pole v tabulce Oprávnění, napiš režim do pole Osmičkově (např. 755 nebo 4755), nebo vlož řetězec jako rwxr-xr-x či drwxr-sr-x (přímo z ls -l) do pole Symbolicky (např. rwxr-xr-x). Ostatní zobrazení se okamžitě přizpůsobí.
    2. Podle potřeby nastav Speciální bity: Setuid (4000), Setgid (2000) nebo Sticky (1000). Osmičkový režim pak má čtyři číslice.
    3. Zadej Název souboru nebo adresáře, podle potřeby zaškrtni Je to adresář a Rekurzivně (-R) a zkopíruj Číselný nebo Symbolický příkaz.
    4. Chceš-li vyzkoušet relativní změnu, zapiš ji do pole Symbolická změna (např. u+x,go-w) a klikni na Použít změnu.

    Tlačítka Běžné předvolby načtou typické režimy, například 644, 600, 755 nebo 2775. Řádek Relativní změna z … ukazuje výraz chmod, který poslední předvolbu nebo zadaný režim změní na aktuální, například a+x z 644 na 755.

    Jak číst oprávnění v Unixu

    Každý soubor má tři třídy uživatelů: vlastníka (u), skupinu (g) souboru a ostatní (o), tedy všechny ostatní. Každá třída má tři oprávnění a každé má svou hodnotu: čtení = 4, zápis = 2, spuštění = 1. Jejich součet dává jednu osmičkovou číslici na třídu: rwx = 7, rw- = 6, r-x = 5, r– = 4. Proto je rwxr-xr-x totéž co 755.

    U adresáře znamenají stejná písmena trochu něco jiného, což vypisuje seznam Kdo co může: r umožňuje vypsat položky, w umožňuje (spolu s x) vytvářet, přejmenovávat a mazat položky a x umožňuje do adresáře vstoupit a dostat se k souborům uvnitř.

    Speciální bity

    • Setuid (4000) u spustitelného souboru způsobí, že běží s právy jeho vlastníka. Používá ho passwd k zápisu do databáze hesel. Zobrazuje se jako s na pozici spuštění vlastníka, nebo jako S, pokud spuštění chybí.
    • Setgid (2000) u spustitelného souboru ho spustí s právy skupiny. U adresáře dědí nové soubory skupinu adresáře, což udržuje sdílené projektové složky konzistentní (2775).
    • Sticky (1000) u adresáře umožní smazat nebo přejmenovat soubor jen jeho vlastníkovi, i když tam mohou zapisovat všichni. /tmp má 1777. Zobrazuje se jako t (nebo T) na pozici spuštění ostatních.

    Symbolické změny

    Symbolický výraz má tvar „koho, operátor, oprávnění“: u+x přidá spuštění vlastníkovi, go-w odebere zápis skupině a ostatním, a=r nastaví všem jen čtení, g=u zkopíruje práva vlastníka skupině. Jednotlivé klauzule odděluj čárkami. Velké X přidá spuštění jen adresářům nebo souborům, které už bit spuštění mají, díky čemuž je chmod -R a+X bezpečné na stromu se smíšenými soubory. Pokud „koho“ chybí, nástroj změnu použije na všechny třídy, jako to dělá GNU chmod s maskou umask 0.

    Bezpečnostní tipy

    Vyhni se 777. Umožňuje kterémukoli účtu na počítači, včetně napadeného procesu webového serveru, soubor měnit nebo nahradit. Typické bezpečné volby jsou 644 pro soubory, 755 pro adresáře a skripty, 600 pro soukromé klíče a 700 pro soukromé adresáře. Kalkulačka upozorňuje na režimy zapisovatelné pro všechny, na 777 a na programy se setuid.

    Časté dotazy

    Jaký je rozdíl mezi chmod 755 a chmod 775?

    U 755 může zapisovat jen vlastník, skupina a ostatní mohou číst a spouštět. 775 dává právo zápisu i skupině, což se hodí pro adresáře sdílené týmem.

    Jaká oprávnění má mít soukromý klíč SSH?

    600 (rw-------). OpenSSH odmítne použít soukromý klíč, který může číst skupina nebo ostatní.

    Proč má osmičkový režim někdy čtyři číslice?

    První číslice nese speciální bity: 4 pro setuid, 2 pro setgid, 1 pro sticky. 0755 a 755 jsou stejný režim.

    Funguje chmod 644 na adresáři?

    Bity se nastaví, ale bez x nikdo nemůže do adresáře vstoupit ani otevřít soubory v něm. U adresářů používej 755 nebo 750.

    Co znamená velké S nebo T v ls -l?

    Speciální bit je nastaven, ale odpovídající bit spuštění ne. Obvykle jde o chybu: přidej oprávnění ke spuštění, nebo speciální bit odeber.