Utilia

Kalkulačka chmod

Prevádzaj oprávnenia súborov Unixu medzi políčkami, osmičkovým (755) a symbolickým (rwxr-xr-x) zápisom, so setuid, setgid, sticky bitom a príkazmi chmod.

Oprávnenia
TriedaČítanie (4)Zápis (2)Spustenie (1)
Vlastník (u)
Skupina (g)
Ostatní (o)
Špeciálne bity

Príkazy

Číselný
Symbolický
Ako ho zobrazí ls -l
Relatívna zmena z {from}

Kto čo môže

    Bežné predvoľby

    Ako používať kalkulačku chmod

    1. Začni v ľubovoľnej podobe: zaškrtni polia v tabuľke Oprávnenia, zadaj režim do Osmičkovo (napr. 755 alebo 4755), alebo vlož reťazec ako rwxr-xr-x či drwxr-sr-x (priamo z ls -l) do Symbolicky (napr. rwxr-xr-x). Ostatné zobrazenia sa okamžite prispôsobia.
    2. Ak ich potrebuješ, nastav Špeciálne bity: Setuid (4000), Setgid (2000) alebo Sticky (1000). Osmičkový režim má potom štyri číslice.
    3. Zadaj Názov súboru alebo adresára, podľa potreby zaškrtni Je to adresár a Rekurzívne (-R) a skopíruj Číselný alebo Symbolický príkaz.
    4. Relatívnu zmenu vyskúšaš tak, že ju napíšeš do Symbolická zmena (napr. u+x,go-w) a klikneš na Použiť zmenu.

    Tlačidlá Bežné predvoľby načítajú typické režimy ako 644, 600, 755 alebo 2775. Riadok Relatívna zmena z … ukazuje výraz chmod, ktorý zmení poslednú predvoľbu alebo zadaný režim na aktuálny, napríklad a+x z 644 na 755.

    Ako čítať oprávnenia v Unixe

    Každý súbor má tri triedy používateľov: vlastníka (u), skupinu (g) súboru a ostatných (o), teda všetkých ostatných. Každá trieda dostane tri oprávnenia a každé má svoju hodnotu: čítanie = 4, zápis = 2, spustenie = 1. Ich súčet dá jednu osmičkovú číslicu na triedu: rwx = 7, rw- = 6, r-x = 5, r– = 4. Preto je rwxr-xr-x 755.

    Pri adresári znamenajú rovnaké písmená niečo trochu iné, čo vysvetľuje zoznam Kto čo môže: r umožňuje vypísať položky, w umožňuje (spolu s x) vytvárať, premenovávať a mazať položky a x umožňuje vstúpiť do adresára a dostať sa k súborom v ňom.

    Špeciálne bity

    • Setuid (4000) na spustiteľnom súbore ho spúšťa s právami vlastníka súboru. Používa ho passwd na zápis do databázy hesiel. Zobrazuje sa ako s na mieste spustenia vlastníka, alebo S, ak spustenie chýba.
    • Setgid (2000) na spustiteľnom súbore ho spúšťa s právami skupiny. Pri adresári dedia nové súbory skupinu adresára, čo udržiava zdieľané priečinky projektov jednotné (2775).
    • Sticky (1000) na adresári umožňuje súbor zmazať alebo premenovať iba jeho vlastníkovi, aj keď tam môže zapisovať každý. /tmp má 1777. Zobrazuje sa ako t (alebo T) na mieste spustenia pre ostatných.

    Symbolické zmeny

    Symbolický výraz má tvar „koho, operátor, oprávnenia“: u+x pridá spustenie vlastníkovi, go-w odoberie zápis skupine a ostatným, a=r nastaví všetkým iba čítanie, g=u skopíruje práva vlastníka skupine. Jednotlivé časti oddeľ čiarkami. Veľké X pridá spustenie iba adresárom alebo súborom, ktoré už majú bit spustenia, vďaka čomu je chmod -R a+X bezpečný na strome so zmiešanými súbormi. Ak „koho“ vynecháš, nástroj použije zmenu na všetky triedy, ako to robí GNU chmod s umask 0.

    Bezpečnostné tipy

    Vyhni sa 777. Umožňuje ktorémukoľvek účtu na stroji, vrátane napadnutého procesu webového servera, súbor upraviť alebo nahradiť. Typické bezpečné voľby sú 644 pre súbory, 755 pre adresáre a skripty, 600 pre súkromné kľúče a 700 pre súkromné adresáre. Kalkulačka upozorňuje na režimy zapisovateľné pre všetkých, na 777 a na programy so setuid.

    Často kladené otázky

    Aký je rozdiel medzi chmod 755 a chmod 775?

    Pri 755 môže zapisovať iba vlastník, skupina a ostatní môžu čítať a spúšťať. 775 dáva právo zápisu aj skupine, čo sa hodí pre adresáre zdieľané tímom.

    Aké oprávnenia má mať súkromný kľúč SSH?

    600 (rw-------). OpenSSH odmietne použiť súkromný kľúč, ktorý môže čítať skupina alebo ostatní.

    Prečo má osmičkový režim niekedy štyri číslice?

    Prvá číslica nesie špeciálne bity: 4 pre setuid, 2 pre setgid, 1 pre sticky. 0755 a 755 sú rovnaký režim.

    Funguje chmod 644 na adresári?

    Bity nastaví, ale bez x nikto nemôže vstúpiť do adresára ani otvoriť súbory v ňom. Pre adresáre použi 755 alebo 750.

    Čo znamená veľké S alebo T v ls -l?

    Špeciálny bit je nastavený, ale zodpovedajúci bit spustenia nie. Zvyčajne ide o chybu: pridaj oprávnenie na spustenie, alebo špeciálny bit odstráň.