Uživatelské účty a oprávnění
Linux je víceuživatelský operační systém, který umožňuje správu uživatelských účtů a jejich oprávnění. Každý uživatel má svůj účet a může být členem jedné či více skupin. D9ky uživatelským účtum můžeme zajistit, že každý uživatel má přístup pouze k tomu, k čemu potřebuje. Zároveň můžeme snadno sledovat, kdo provádí jaké změny v systému.
Principy uživatelských účtů
V Linuxu běžně rozlišujeme 3 typy uživatelských účtů:
- Superuživatel (root) – má neomezená oprávnění a plnou kontrolu nad systémem. Účet root je určen pro správu systému, ale jeho použití by mělo být omezeno na nezbytné úlohy.
- Běžný uživatel – má omezený přístup a může manipulovat pouze se svými vlastními soubory a nastaveními..
- Systémové účty – tyto účty slouží ke správě systémových služeb, například
mysql,www-data.
V systému zjistíme kdo je aktuálně přihlášený pomocí příkazu who.
Správa uživatelských účtů
Správa uživatelských účtů zahrnuje vytváření nových účtů, úpravu existujících a jejich mazání. Jednotlivé příkazy na správu uživatelských účtů zadáváme jako správce systému (root).
Informace o uživatelích jsou uloženy v souborech /etc/passwd a /etc/shadow
Soubor /etc/passwd v sobě uchovává kompletní seznam uživatelských účtů, a to jak reálných, tak systémových (virtuálních).
Tyto informace jsou uloženy v následujícím textovém formátu:
username:x:UID:GID:GECOS:homedir:shell
Ten můžeme přečíst následovně:
- username = uživatelské jméno
- x -x = učet je aktivní
- ! = účet je zablokovaný
- UID = ID uživatele
- GID = ID primární skupiny
- GECOS = popis uživatele (jméno, příjmení…)
- homedir = domovský adresář
- shell = shell uživatele
- /bin/false = značí, že uživatel se nemůže přihlásit na konzoli (nemá shell)
Soubor /etc/shadow obsahuje zakryptované hesla k jednotlivým účtům.
Vytvoření nového uživatele
Každý uživatel by měl mít svůj vlastní účet, aby bylo možné řídit přístup k souborům a sledovat, kdo provádí změny v systému. To je důležité jak z hlediska bezpečnosti, tak pro auditování.
Příkaz adduser
Tento příkaz je jednoduchý a interaktivní („user-friendly“). Při jeho použití budeme vyzváni k zadání všech potřebných údajů.
Domovský adresář se automaticky vytvoří v /home/novy_uzivatel
sudo adduser novy_uzivatel
Alternativně lze použít příkaz useradd, který je méně intuitivní – je nutné pomocí parametrů nastavit parametry uživatelského účtu.
Parametry:
-surčuje výchozí shell (nebo /bin/false)-gnastaví primární skupinu-Gzařadí uživatele do dalších skupin-N nevytvoří zároveň skupinu se stejným jménem (standardně se vytváří)-p nastaví úvodní heslo, to musíme ale zadat zašifrované; je jednodušší nastavit heslo později příkazem passwd-mvytvoří domovský adresář v /home (pokud neexistuje)-Mnebude vytvořen domovský adresář-dpřiřadí (již vytvořený) domovský adresář-uzaloží uživatele s daným UID
sudo useradd -m -s /bin/bash -g users novy_uzivatel
sudo passwd novy_uzivatel
Úpravy uživatelských účtů
Účty upravujeme například při změně pracovní role uživatele, přidání oprávnění nebo zamknutí účtu. Přepínače -g, -G, -s, -d, -u mají stejný význam jako v případě příkazu useradd.
Uživatelské účty modifikujeme pomocí příkazů usermod. Přepínače
Uživatele přidáme do skupiny pomocí příkazu usermod, s přepínačem -aG
sudo usermod -aG nazev_skupiny uzivatel
Shell změníme příkazem usermod, s přepínačem -s
sudo usermod -s /bin/zsh uzivatel
Pokud potřebujeme uzamknout účet, použijeme příkaz passwd, s přepínačem -L (lock). Pro odemknutí stejný příkaz s přepínačem -U (unlock).
sudo passwd -L uzivatel
sudo passwd -U uzivatel
Pro změnu jména uživatelské účtu, s ponecháním ostatních informací (UID…) použijeme přepínač -l
sudo usermod -l novyUsername staryUsername
Pro omezení platnosti uživatelského účtu s nutností změnit heslo (z důvodu bezpečnosti) využíváme chage.
Můžete třeba říct, že uživatel lukas si musí vždy po 90 dnech změnit heslo.
sudo chage -M 90 lukas
Mazání uživatelských účtů
Účet, pokud již není potřeba, můžeme i smazat. To provedeme pomocí příkazu deluser, pokud chceme odstranit účet i s domovským adresářem, přidáme –remove-home
sudo deluser --remove-home uzivatel
Skupiny a jejich role
Skupiny slouží ke sdružování uživatelů a přiřazování společných oprávnění. Stejně jak ve Windows u AD, je to užitečné zejména při správě vyššího počtu uživatelů, s různými typy přístupů (oprávnění).
V Linuxu rozlišujeme 2 typy skupin:
- Primární skupina – každý uživatel má právě jednu primární skupinu, ke které se přidávají všechny nově vytvořené soubory.
- Sekundární skupiny – uživatel může být členem více sekundárních skupin.
Pro zjištění, do jakých skupin uživatel patří využíváme příkaz groups (skupiny).
groups uzivatel
Informace o skupinách jsou uloženy v souboru /etc/group
Tyto informace jsou uloženy v následujícím textovém formátu:
jmeno_skupiny:x:GID:[clen1:clen2: … clenX]
Ten můžeme přečíst následovně:
- jmeno_skupiny = název skupiny
- x -x = učet je aktivní
- ! = skupina je zablokovaná
- GID = ID skupiny
- clenN = seznam členů skupiny

Správa skupin
Novou skupinu vytvoříme pomocí příkazu groupadd
sudo groupadd nazev_skupiny
A uživatele do skupiny přidáme pomocí usermod -aG
sudo usermod -aG nazev_skupiny uzivatel
Přístupová práva k souborům a adresářům
Přístupová práva v Linuxu určují, kdo a jakým způsobem může přistupovat k souborům a adresářům. Každý soubor nebo adresář má definovány tři typy oprávnění a tři kategorie uživatelů, kterým jsou tato oprávnění přiřazena.
Typy oprávnění
Každý soubor nebo adresář má tři typy oprávnění:
- Čtení (r)
- u souborů – umožňuje číst obsah souboru
- u adresářů – umožňuje vypsat seznam jeho obsahu (např. pomocí
ls)
- Zápis (w)
- u souborů – umožňuje upravovat obsah souboru
- u adresářů – umožňuje provádět změny v adresáři, například přidávat nebo mazat soubory
- Spuštění (x)
- u souborů – umožňuje spouštět soubor jako program nebo skript
- u adresářů – umožňuje vstupovat do adresáře (např. pomocí
cd)
Tato oprávnění rozdělujeme mezi uživatele (do kategorií):
- vlastník (u) – uživatelský účet, který soubor vytvořil, je obvykle jeho vlastníkem.
- skupina (g) – ostatní uživatelé, kteří jsou členy skupiny vlastníka souboru.
- ostatní (o) – všichni ostatní uživatelé, kteří nejsou vlastníkem ani nejsou členy skupiny.
Jak již víme, oprávnění na soubor zobrazíme pomocí příkazu ls -l
ls -l soubor
Výstup pak vypadá takto:
-rw-r--r-- 1 uzivatel skupina 1234 Dec 5 10:00 soubor.txt
Tento řetězec se skládá z několika částí:
- první znak – určuje typ souboru:
-běžný soubordadresářlsymbolický odkaz (link)
- dalších 9 znaků – reprezentuje oprávnění ve třech skupinách po třech znacích:
rw-práva vlastníka (čtení a zápis, ale ne spuštění)r--práva skupiny (jen čtení)r--práva ostatních (jen čtení)
- další údaj – počet odkazů, vlastník, skupina, velikost, datum změny a název souboru.
Číselný zápis oprávnění
Linux umožňuje vyjádřit oprávnění i v číselném formátu. To se hojně využívá na serverech nebo i ve spec. programech (např. SFTP). Každé oprávnění má přiřazeno číslo:
- čtení (r) – 4
- zápis (w) – 2
- spuštění (x) – 1
Každá skupina uživatelů (vlastník, skupina, ostatní) má své oprávnění jako součet těchto čísel:
rwx= 4 + 2 + 1 = 7rw-= 4 + 2 + 0 = 6r--= 4 + 0 + 0 = 4
Takže napříkad oprávnění -rw-r--r-- se zapíše číselně jako 644:
- vlastník
rw-= 6 - skupina
r--= 4 - ostatní
r--= 4
Příklady zápisu oprávnění

Změna oprávnění
Pro změnu oprávnění se používá příkaz chmod. Můžeme použít buď symbolický, nebo číselný zápis.
Symbolický zápis:
sudo chmod u+rwx,g+rx,o-r soubor
u+rwx– přidání čtení, zápisu a spuštění vlastníkovig+rx– přidání čtení a spuštění skupiněo-r– odebrání čtení ostatním
Písmeno u signalizuje, že měníme práva vlastníka. Znak + znamená, že práva přidáváme (– práva odebírá, = přiřazuje). Další znaky symbolizují práva, které se budou měnit.
Číselný zápis:
sudo chmod 754 soubor
Tímto příkazem:
- vlastník má všechna oprávnění (
rwx= 7) - skupina má čtení a spuštění (
r-x= 5) - ostatní mají pouze čtení (
r--= 4).
Rekurzivní změna práv
Pro změnu práv rekurzivně (adresář a veškerý jeho obsah), použijeme přepínač -R
sudo chmod -R 755 adresar/
sudo chmod -R g-w "x"
Nicméně, chmod s přepínačem -R, spuštěný zejména pod rootem, dokáže velmi snadno znehodnotit systém. Zejména pozor při zadávání asbolutních cest, protože největší škodu příkaz napáchá tehdy, když dostane kořenový adresář / jako argument. Takže s tímto přepínačem musíme zacházet opravdu opatrně.
Změna vlastníka a skupiny
Pro změnu vlastníka nebo skupiny se používají příkazy chown a chgrp.
sudo chown novy_vlastnik soubor
sudo chgrp nova_skupina soubor
Pokud chceme změnit vlastníka i skupinu naráz, použijeme chown ve formátu:
sudo chown uzivatel:skupina soubor
Tímto příkazem:
- vlastník má všechna oprávnění (
rwx= 7) - skupina má čtení a spuštění (
r-x= 5) - ostatní mají pouze čtení (
r--= 4).
Přístupová práva adresářů
U adresářů mají oprávnění specifický význam, jak již bylo řečeno:
- čtení (r) – zobrazení seznamu souborů v adresáři.
- zápis (w) – možnost přidávat nebo mazat soubory.
- spuštění (x) – možnost vstupovat do adresáře pomocí
cd.
Například adresář s oprávněními drwxr-x--- znamená:
- vlastník může číst, zapisovat a vstupovat do adresáře,
- skupina může pouze číst a vstupovat,
- ostatní nemají žádná oprávnění.
ACL – rozšířená práva
Někdy potřebujeme nastavit práva pro konkrétní uživatele (např. nemůžeme přidat uživatele do skupiny, která to umožňuje, aby nedostal uživatel práva i tam, kam nemá). Toto je už trošku složitější situace, ale v Linuxu máme možnost využít tzv. ACL (Access Control List).
ACL nám umožňuje rozšířenou správu práv jednoho uživatele.
ACL není standardně součástí systému, zároveň mírně zpomaluje výkon souborového systému. Musíme tedy doinstalovat balíček acl, a nastavit v souborovém systému.
Zobrazení přístupu
Příkazem getfacl zobrazíme název souboru, vlastníka, skupina a aktuální nastavení ACL.
sudo getfacl adresar
Nám vypíše výpis současného stavu oprávnění adresáře „adresar“. Pokud se běžný uživatel pokusí něco provést, vypíše se mu „Operace zamítnuta“.
# file: adresar/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
Nastavení přístupu
Pro nastavení přístupu jednotlivým uživatelům/skupinám slouží příkaz setfacl a jedním z parametrů je -m (říká nám, že chceme práva měnit). Následně zapíšeme řetězec ve formátu „typ:jmeno:práva“
- typ označuje o jaký typ záznamu jde
- user – uživatel
- group – skupina
- others – vše ostatní
- mask – maska
- jmeno značí jméno skupinu/uživatele, které práva přidělujeme
- prava – konkrétní oprávnění
Nakonec napíšeme název adresáře/souboru
sudo setfacl -m user:lukas:rwx adresar
sudo setfacl -m group:ops4:r-- adresar
Práva adresar jsou následující:
# file: adresar
# owner: root
# group: root
user::rwx
user:lukas:rwx
group::r-x
group:ops4:r--
mask::rwx
other::r-x
Pokud budeme chtít jednotlivá práva smazat (zamezit přístup), použijeme přepínač -x
sudo setfacl -x user:lukas adresar
Pro úplne smazání všech rozšířených práv se používá přepínač -b
sudo setfacl -b adresar
Pokud potřebujeme nastavit výchozí práva (bez ohledu na to, kdo je vytvořil),použijeme default
sudo setfacl -m default:user:lukas:rwx adresar
Pokaždé, když teď v adresáři „adresar“ vytvoříme soubor nebo podadresář, bude mít vždy nastaveno oprávnění „user:lukas:rw“
Prezentace
4-Uzivatelske-ucty-a-opravneni-Zdroje
Seznam zdrojů
ŠEDIVÝ, Libor. Operační systémy IV. ročník: Učební text. Městská střední odborná škola Klobouky u Brna, 2023.
ŠEDIVÝ, Libor. Operační systémy IV. ročník: Prezentace. Městská střední odborná škola Klobouky u Brna, 2023.
POMYKACZ, Ivan. Digitální učební materiály: Operační systémy – Linux. Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace, 2013.
ABARIS, Augustine. Introduction to Linux. BOSTON UNIVERSITY, 2018.
Linux Journey. Online. 2024. Dostupné z: https://linuxjourney.com/.
Ibiblio catalog. The Linux Users‘ Guide. Dostupné z: https://www.ibiblio.org/
Učebnice ABC/Linuxu. Online. Abclinuxu, 2006. Dostupné také z: https://www.abclinuxu.cz/download/ucebnice_abc_linuxu-20061019.pdf.
