Příklad příkazu chmod v Linuxu

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:

  1. Adresáře
  2. Soubory

Jsou tři akce, které lze provádět:

  1. Čtení
  2. Zápis
  3. 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:

  1. Vlastník souboru
  2. Skupina vlastníka souboru
  3. 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:

ls -l

Tady je to, co dostaneme zpět tímto příkazem:

Zjistit oprávnění pro soubory

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:

chmod permissions file …

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:

sudo chmod 760 hello.txt

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:

sudo -u notowner-user more hello.txt

Zobrazí se následující chyba:

hello.txt: Oprávnění odepřeno

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:

sudo chmod u=rwe,g=rw,o-rwx hello.txt

Chceme-li přidat oprávnění stávajícímu uživateli, můžeme také provést:

sudo chmod g+w hello.txt

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:

sudo chmod 777 Adresář/*

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

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.

Napsat komentář