V tomto krátkém návodu se podíváme, jak můžeme v počítači Ubuntu použít příkaz chmod k nalezení, úpravě a odstranění uživatelských oprávnění u konkrétních souborů, které existují v souborovém systému uživatele. Přehrajeme si různé podmínky, abychom zvládli základní příkazy chmod, které nám mohou usnadnit každodenní život s Ubuntu.
Oprávnění v Linuxu
Oprávnění v Linuxu jsou velkou sadou pravidel, která je jednoduché pochopit, pokud pochopíme základní práva. Tři hlavní body, které musíme pochopit, abychom věděli, jak Oprávnění v Linuxu fungují, jsou:
- Prvek, pro který byla oprávnění definována
- Jaké akce lze s oprávněním provádět
- Kdo může provádět jaké akce
V souborovém systému Linux existují dva základní prvky:
- Adresáře
- Soubory
Jsou tři akce, které lze provádět:
- Čtení
- Zápis
- Vykonání. Kromě spouštění skriptů je stejných akcí zapotřebí k vytváření souborů a dalších složek v něm
Uživatelé, kteří mohou tyto akce provádět, jsou:
- Vlastník souboru
- Skupina vlastníka souboru
- Uživatelé, kteří nejsou spojeni se skupinou vlastníka nebo vlastníkem samotným
Chcete-li zobrazit oprávnění týkající se souboru, spusťte následující příkaz:
Tady je to, co dostaneme zpět tímto příkazem:
Zjistit oprávnění pro soubory
Ve výstupu prvních 10 znaků představuje oprávnění pro soubor:
- První znak, který je v tomto případě ‚-‚, znamená, že se jedná o soubor. V případě adresáře by to bylo ‚d‘.
- Dalších devět znaků představuje oprávnění pro vlastníka, skupinu vlastníka, respektive ostatní.
Změna oprávnění
Syntaxe pro změnu oprávnění souboru vypadá takto:
Octal representation for Permissions
Oprávnění můžeme prezentovat jako osmičkové číslo. Například pro nastavení oprávnění ke čtení, zápisu & spuštění pro vlastníka, oprávnění ke čtení & zápisu pro jeho skupinu a žádných oprávnění pro ostatní k souboru hello.txt provedeme následující příkaz:
Jakmile provedeme výše uvedený příkaz a pokusíme se přečíst soubor s účtem nevlastníka pomocí následujícího příkazu:
Zobrazí se následující chyba:
Ale kde se toto číslo vzalo? Každá číslice tohoto čísla představuje sadu oprávnění. Podívejme se, jak byly odvozeny:
- 0: Značí žádné oprávnění
- 1: Značí oprávnění vykonávat
- 2: Značí oprávnění zapisovat
- 4: Značí oprávnění číst
Pro přidělení oprávnění číst, zapisovat & vykonávat pro vlastníka jsme mu přidělili číslo 7(= 4 + 2 + 1). Lépe to pochopíme v tabulce číslic:
Číslo | Binární | Čtení | Zápis | Vykonání |
0 | 000 | NE | NE | NE |
1 | 001 | NE | NE | ANO |
2 | 010 | NE | ANO | NE |
3 | 011 | NO | ANO | ANO |
4 | 100 | ANO | NE | NE |
5 | 101 | ANO | NE | ANO |
6 | 110 | ANO | Ano | Ne |
7 | 111 | Ano | Ano | Ano |
Výše uvedená tabulka je mnohem přehlednější v tom, co která představuje z hlediska oprávnění k souborům.
Znaková reprezentace pro oprávnění
Oprávnění můžeme prezentovat jako osmičkové číslo. Například pro nastavení oprávnění ke čtení, zápisu & spuštění pro vlastníka, oprávnění ke čtení & zápisu pro jeho skupinu a žádných oprávnění pro ostatní k souboru hello.txt provedeme následující příkaz:
Chceme-li přidat oprávnění stávajícímu uživateli, můžeme také provést:
Zde bylo oprávnění k zápisu přiděleno skupině uživatelů vlastníka souboru.
Rekurzivní změny oprávnění
Jedním příkazem můžeme také změnit oprávnění pro soubor obsažený v určitém adresáři. Chcete-li změnit oprávnění každého souboru a složky v zadaném adresáři najednou, použijte příkaz sudo chmod s příkazem -R:
Můžeme vidět následující výstup, který jasně odráží změnu oprávnění souborů:
Rekurzivní změna oprávnění souboru
Závěr
V této lekci jsme se podívali, jak můžeme změnit oprávnění souboru a v případě potřeby to provést rekurzivně. Pochopili jsme základní koncepty fungování oprávnění v Linuxu, které nám mohou velmi pomoci při každodenní práci.