Vysvětlení oprávnění k souborům a adresářům Linux

Linux je operační systém navržený pro současnou práci více uživatelů na jednom počítači. Vzhledem k této multiuživatelské povaze je klíčové zajistit bezpečnost a ochranu soukromí dat každého uživatele. Proto Linux implementuje důmyslný systém pro správu přístupových práv k souborům a složkám. To umožňuje uživatelům ovládat, kdo má přístup k jejich datům a jaké akce s nimi může provádět.

Pro uživatele Linuxu je zásadní porozumět mechanismům správy oprávnění a tomu, jak s nimi pracovat, aby chránili své soubory a zajistili správné fungování systému. Pro lepší pochopení systému správy oprávnění v Linuxu se nejprve podíváme na různé kategorie uživatelů.

Uživatelské kategorie v Linuxu

První kategorií jsou vlastníci souborů nebo adresářů. Každý soubor či adresář má v Linuxu jediného vlastníka. Tento vlastník obvykle disponuje největšími přístupovými právy ke svým souborům a složkám. Vlastník je standardně označen písmenem „u“.

V Linuxu je možné sdružovat uživatele do skupin a těmto skupinám přidělovat přístupová práva k souborům. Tito uživatelé jsou označováni jako vlastníci skupiny, symbolicky reprezentovaní písmenem „g“.

Například, pokud máte soubor s doporučenými knihami a chcete, aby několik uživatelů mělo k němu podobná práva, nejjednodušší je vytvořit skupinu a přidělit oprávnění této skupině jako celku.

Druhou kategorií jsou ostatní uživatelé, označovaní písmenem „o“. Ti nejsou ani vlastníky souboru, ani členy skupiny, která má k souboru přístup. Tato kategorie zahrnuje všechny ostatní uživatele systému.

Všechny uživatele v systému (vlastníky souborů, členy skupin i ostatní) lze souhrnně označit písmenem „a“.

Vytvoření a přidání nového uživatele v Ubuntu Linux

Podíváme se, jak vytvořit a přidat nového uživatele v Ubuntu Linux. Pro účely tohoto návodu vytvořte prosím také nového uživatele.

1. Otevřete nastavení systému. V levém menu vyberte „Uživatelé“. Klikněte na „Odemknout“ a zadejte heslo. Pro přidání nového uživatele musíte odemknout nastavení, které je standardně uzamčeno.

2. Po odemčení se zobrazí možnost „Přidat uživatele“. Kliknutím na ni přidáte nového uživatele.

3. Vyplňte celé jméno a uživatelské jméno nového uživatele. Vyberte „Nastavit heslo nyní“ a zadejte heslo. Ujistěte se, že je typ účtu nastaven na „Administrátor“ a klikněte na „Přidat“.

4. Měl by se vám zobrazit nově vytvořený uživatelský účet, jak je znázorněno níže.

Oprávnění k souborům a adresářům v Linuxu

Oprávnění v Linuxu definují pravidla, která řídí přístup k souborům a adresářům. Existují tři základní kategorie oprávnění:

  • Čtení (r): Umožňuje uživateli zobrazit obsah souboru a vypsat obsah adresáře.
  • Zápis (w): Umožňuje uživateli upravovat obsah souboru. U adresářů umožňuje uživateli měnit obsah adresáře (např. vytvářet, mazat, přejmenovávat nebo přesouvat soubory a podadresáře). Zápis do adresáře však funguje pouze pokud má uživatel i oprávnění ke spouštění.
  • Spouštění (x): U souborů znamená možnost spouštět soubor jako program. U adresářů umožňuje uživateli vstupovat do adresáře pomocí příkazu „cd“.

Tato oprávnění se přiřazují třem kategoriím uživatelů v Linuxu.

Mohlo by vás také zajímat, jak mazat soubory a adresáře v Linuxu.

Dlouhý výpis v Linuxu

Pro zobrazení obsahu adresáře v Linuxu se obvykle používá příkaz „ls“. Tento příkaz však zobrazuje pouze seznam souborů a složek, bez dalších detailů. Pro zobrazení podrobných informací použijte dlouhý výpis. Toho docílíte spuštěním příkazu „ls“ s parametrem „-l“. Zobrazí se informace o oprávněních, vlastníku souboru a vlastníkovi skupiny:

V Ubuntu, pokud není vytvořena žádná skupina, je výchozí název skupiny stejný jako vlastník souboru.

Pro vytvoření skupiny použijte příkaz „addgroup“. Například pro vytvoření skupiny s názvem „editory“ spusťte následující příkaz a zadejte heslo:

sudo addgroup editors

Příkaz „sudo“ umožňuje spouštět příkazy jako uživatel root (superuživatel s právy provádět změny, které ovlivňují všechny uživatele).

Pro přidání uživatelů do skupiny použijte syntaxi:

adduser <uživatel> <skupina>

Pro přidání uživatelů „belmont“ a „madici“ do skupiny „editory“ spusťte:

sudo adduser belmont editors
sudo adduser madici editors

Pro zobrazení skupin, do kterých uživatel patří, spusťte:

groups <uživatelské_jméno>

Výsledky výše uvedených příkazů jsou zobrazeny níže:

Nyní se podíváme na atributy souboru, které nám poskytují informace o typech souborů a jejich oprávněních.

Atributy souboru v Linuxu

V Linuxu se atributy souboru skládají z deseti znaků. První znak označuje typ souboru:

  • d – adresář
  • – – běžný soubor (např. textový soubor)
  • c – znakové speciální soubory
  • l – symbolický odkaz
  • b – blokové speciální soubory

Zbylých devět znaků zobrazuje oprávnění vlastníka, vlastníka skupiny a ostatních uživatelů. Jsou rozděleny do tří skupin po třech. První skupina označuje oprávnění vlastníka, druhá skupiny oprávnění skupiny a třetí skupina oprávnění ostatních uživatelů.

Oprávnění pro každou kategorii jsou uvedena v pořadí: čtení (r), zápis (w), spouštění (x). Symbol „-“ se používá, pokud uživatel nemá konkrétní oprávnění. Například „rw-“ pro vlastníka skupiny znamená, že má právo číst a zapisovat, ale nemá právo spouštět v tomto adresáři (d).

Změna oprávnění pomocí symbolického zápisu

Pro změnu oprávnění souboru nebo adresáře použijte příkaz „chmod“. Specifikujete, komu měníte oprávnění: vlastník souboru („u“), vlastník skupiny („g“) nebo ostatní uživatelé („o“). Můžete také cílit na všechny kategorie současně pomocí „a“. Dále určíte operaci: „+“ pro přidání, „-“ pro odebrání oprávnění. Nakonec zadáte oprávnění: „r“, „w“ nebo „x“.

Pro demonstraci vytvořte adresář „books“ pomocí příkazu:

mkdir books

Vstupte do adresáře pomocí příkazu:

cd books

Vytvořte soubor s názvem „readingList.txt“ pomocí:

touch readingList.txt

Proveďte dlouhý výpis obsahu adresáře pomocí:

ls -l

Výstup bude podobný následujícímu:

Vytvořený soubor je běžný soubor („-„). Vlastník a vlastník skupiny mají práva čtení a zápisu, zatímco ostatní uživatelé mají právo pouze číst. Chcete-li ostatním uživatelům udělit právo zapisovat do souboru, použijte:

chmod o+w readingList.txt

Pro ověření změny oprávnění spusťte:

ls -l

Výstup:

Všimněte si, že oprávnění ostatních uživatelů se změnila z „r–“ na „rw-„, což znamená, že nyní mají i právo zápisu.

Pro přidání práva spouštění vlastníkovi souboru použijte:

chmod u+x readingList.txt

Pro odebrání práva zápisu vlastníkovi skupiny:

chmod g-w readingList.txt

Pro odebrání práva čtení všem uživatelům:

chmod a-r readingList.txt

Pro opětovné přidání práva čtení vlastníkovi souboru:

chmod u+r readingList.txt

Pro přidání práva zápisu a spouštění vlastníkovi skupiny:

chmod g+wx readingList.txt

Změna oprávnění pomocí osmičkové notace

V Linuxu má každé ze tří dostupných oprávnění dvě možné hodnoty: buď je oprávnění uděleno (r, w, x), nebo není (-). Tato oprávnění lze proto vyjádřit pomocí binárních čísel (1 pro zapnuto, 0 pro vypnuto). Například oprávnění „rw-“ se dá vyjádřit jako 110 v binárním kódu.

Pro každou uživatelskou kategorii stačí tři binární číslice pro vyjádření všech jejích oprávnění. Například „rwxrw-r–“ lze vyjádřit jako 111110100.

Pro zjednodušení a přehlednost se místo binárních čísel používají osmičková čísla. Osmičková čísla mají základ 8 a mají 8 možných hodnot. Každé osmičkové číslo odpovídá třem binárním číslicím.

Například „rw-“ je 110 v binární podobě, a osmičkově je to 6. Osmičková čísla se používají pro vyjádření oprávnění pro vlastníka, skupinu a ostatní uživatele. Zde je znázornění vztahu mezi binární a osmičkovou reprezentací:

Místo dlouhých binárních sekvencí se používají krátká osmičková čísla pro vyjádření všech oprávnění. Výhodou osmičkové notace je možnost nastavit oprávnění pro všechny uživatele najednou, na rozdíl od symbolické notace, kde se upravuje oprávnění po jednom uživateli.

Používání osmičkové notace však vyžaduje trochu cviku. Následující tabulka je vám vždy k dispozici:

Pro udělení oprávnění číst, zapisovat a spouštět všem uživatelům pro soubor „readingList.txt“ proveďte:

chmod 777 readingList.txt

Pro ověření změny oprávnění spusťte:

ls -l

Výstup:

total 0
-rwxrwxrwx 1 madici madici 0 Sep  6 05:45 readingList.txt

Všimněte si, že všichni uživatelé mají nyní práva číst, zapisovat a spouštět soubor „readingList.txt“.

Pro odebrání práva zápisu vlastníkovi skupiny i ostatním uživatelům proveďte:

chmod 755 readingList.txt

Pro odebrání práva spouštění vlastníkovi a ostatním uživatelům proveďte:

chmod 654 readingList.txt

Speciální oprávnění v Linuxu

Kromě základních oprávnění čtení, zápis a spouštění, Linux disponuje třemi speciálními oprávněními, která poskytují pokročilé funkce pro řízení přístupu a umožňují uživatelům spouštět programy s vyššími právy, než by běžně měli.

Tato speciální oprávnění zahrnují:

  • Set User ID (SUID): Umožňuje uživateli spouštět soubor s právy vlastníka souboru, nikoli s jeho vlastními právy. To se hodí, když běžní uživatelé potřebují provádět úlohy vyžadující zvýšená oprávnění.
  • Set Group ID (SGID): Umožňuje uživateli spustit soubor s oprávněními skupiny, ke které patří soubor.
  • Sticky Bit: Obvykle se nastavuje pro adresáře. Zajišťuje, že soubory v adresáři může smazat jen vlastník adresáře, vlastník souboru, nebo uživatel root.

Tato speciální oprávnění se nastavují spolu s běžnými oprávněními (čtení, zápis, spouštění).

Závěr

Oprávnění jsou klíčovým konceptem v Linuxu, i když na vašem počítači pracuje pouze jeden uživatel. Jejich pochopení je nezbytné pro zajištění kontroly, bezpečnosti a soukromí vašich dat a správné funkčnosti systému. Doporučujeme vám se s oprávněními blíže seznámit a vyzkoušet si, co jste se v tomto článku naučili.

Může vás také zajímat, jak používat linuxové příkazy ve Windows.