Obsah

Práva souborů

Podrobný výpis

Příkazem ls -l vytiskne více informací k souboru/souborech/adresářích.

Práva souboru

Klasická práva jsou definovaná devíti, tedy 3x3 znaky. První trojice definuje práva vlastníka souboru, druhá trojice vlastnické skupiny a poslední trojice všech ostatních uživatelů na serveru.
Kromě těchto běžných práv jsou ještě možná další

Vlastník souboru, uživatelská grupa

Vlastník souboru v klasických právech je jen jediný, může přidělovat práva. Root má stejná práva jako vlastník souboru (takže je může také měnit).
Vlastnická grupa má definovanou také svou skupinu práv, každý soubor má jen jednu vlastnickou grupu.
Běžný uživatel nemůže změnit vlastníka souboru, to je vyhrazeno pouze rootovi. Běžný uživatel může změnit vlastnickou grupu souboru, pokud je členem nové grupy. Pro změnu vlastníka souboru slouží příkaz chown, pro změnu vlastnické grupy chgrp.

Změna práv

Pro změnu práv slouží příkaz chmod právo soubor(y) (change mode). Má povinné dva parametry, první z nich definuje, jaká práva se mají změnit a druhý na jaké soubory má tu změnu provést.

Symbolický zápis práv

U symbolického zápisu potřebujete zapsat tři informace: komu — jakou změnu — jaké právo
Příklady:
chmod o+x soubor přidá ostatním práva ke spouštění
chmod a-r soubor odebere všem práva ke čtení
chmod go-r soubor odebere práva ke čtení skupině a ostatním
chmod go=r soubor nastaví skupině a ostatním práva ke čtení, ale zároveň jim sebere práva k zápisu a spouštění, pokud nějaké měli
chmod a=rwx soubor dá všem práva ke čtení, zápisu i spouštění
chmod a= soubor sebere všem práva ke čtení, zápisu i spouštění

Numerický zápis práv

Symbolický zápis práv je jednoduchý k přečtení i pochopení, nicméně se může stát, že požadovaná práva nenastavíte jediným příkazem. Také po většinou vás nezajímá, jaká práva soubor ve stávající chvíli má, ale chcete pouze nastavit práva nová. K tomu se hodí výborně numerický zápis. V něm požadovaná práva přepočítáte do osmičkové soustavy.
požadovaná právarwxr-xr-x
jejich zápis ve dvojkové soustavě111101101
přepočteno do osmičkové soustavy4+2+14+0+14+0+1
vychází755
Zvídavý čtenář teď přemýšlí nad úskalím osmičkové soustavy a proč ten přepočet vypadá úplně stejně, jako kdybyste převáděli dvojkové číslo do desítkové soustavy. Nejvyšší práva, která zde budu nastavovat, jsou rwx, tedy 111 dvojkově, tedy číslice 7 desítkově. Osmičková soustava disponuje číslici 0-7, 7 je nejvyšší, v osmičkové soustavě bude i fungovat, když si ty čísla napíšete za sebe a budete převádět 111101101, vyjde vám 755.
Více příkladů:
požadovaná právarwxr-----
jejich zápis ve dvojkové soustavě111100000
přepočteno do osmičkové soustavy4+2+14+0+00+0+0
vychází740
požadovaná právarw-rw--w-
jejich zápis ve dvojkové soustavě110110010
přepočteno do osmičkové soustavy4+2+04+2+00+2+0
vychází662
Numerický zápis v příkazu chmod nahradí symbolický zápis
chmod 755 soubor nastaví práva rwxr-xr-x
chmod 644 soubor nastaví práva rw-r--r--
chmod 700 soubor nastaví práva rwx------
chmod 444 soubor nastaví práva rw-rw-rw-
chmod 777 soubor nastaví práva rwxrwxrwx
chmod 000 soubor nastaví práva ---------
Co když vlastníte soubor, do kterého nemáte práva zapisovat? Některé aplikace jsou chytřejší a vidí, že když jej vlastníte, tak jej můžete i měnit. Nicméně na to nespoléhejte a nemáte-li práva k zápisu a přesto potřebujete soubor změnit, tak si ty práva změňte.
Proč se vůbec máte znervózňovat s právy a nenastavíte všude rwxrwxrwx? Protože nežijeme v ideálním světě. Věřím, že máte nějaké bezpečné místo, ale váš počítač připojený k Internetu to není. Práva souborů řešíte ze stejného důvodu, ze kterého zamykáte dveře od bytu nebo nenecháváte zapnutou cirkulárku před mateřskou školkou.

Jak se nastavuje SUID, SGIT a stickybit

Symbolicky
chmod u+s soubor přidá SUID ??s??????
chmod g+s soubor přidá SGID ?????S???
chmod o+t soubor přidá sticky bit ????????T
Numericky
chmod 4755 soubor nastaví práva rwsr-xr-x
chmod 2644 soubor nastaví práva rw-r-Sr-- 1
chmod 1644 soubor nastaví práva rw-r--r-Todebere práva ke čtení skupině a ostatním
chmod 644 soubor sebere případný SUID, GUID, sticky bit a nastaví rw-r--r--

Toto byla klasická práva a co je jiného?

Klasická práva jsou definovaná ve všech běžných UNIXových systémech. Tento princip nemusí vyhovovat pro každé použití, proto se můžete setkat i s rozšířeným pojetím práv, nejčastěji použití ACL. Zde je možné definovat skupiny uživatelů s různými právy. Pro zjištění práv je příkaz getfacl, pro nastavení setfacl