Lekce 11 - Linuxový terminál (Bash) - Správa uživatelů
V předchozím kvízu, Kvíz - Základy příkazového řádku v Bashi, jsme si ověřili nabyté zkušenosti z předchozích lekcí.
V tomto tutoriálu základů Linuxu se zaměříme na správu uživatelů v Bashi. Naučíme se, jak uživatele vytvářet, upravovat a odstraňovat a jak fungují jejich oprávnění a identifikace v systému.
Uživatelé v Linuxu
Linux eviduje všechny uživatele v souboru /etc/passwd.
Podívejme se, jaké účty jsou v systému aktuálně vytvořeny:
cat /etc/passwd
Každý řádek v tomto souboru představuje jednoho
uživatele. Celkový počet uživatelů si můžeme zobrazit pomocí
příkazu wc (word count) s přepínačem -l, který
počítá řádky:
wc -l /etc/passwd
V systému obvykle najdeme desítky uživatelských účtů. Na prvním
řádku je uživatel root s UID 0. Další účty patří
systémovým službám, například lp, mail nebo
www-data. Běžní uživatelé mají typicky UID od 1000
výše.
Každý řádek obsahuje několik údajů oddělených dvojtečkou:
| david | x | 1001 | 1001 | ,,, | /home/david |
/bin/bash |
| Jméno uživatele | Heslo | UID | GID | Informace | Domovský adresář | Výchozí shell |
Na druhé pozici bývalo dříve uložené heslo, dnes je zde
znak x. Z bezpečnostních důvodů jsou hesla uložena v
zahashované podobě v souboru /etc/shadow.
Konkrétního uživatele si vypíšeme například pomocí příkazu
grep:
grep david /etc/passwd
Výstup vypadá například takto:
david:x:1000:1000:David Čápka:/home/david:/bin/bash
Rozsahy UID a GID
Každý uživatel v Linuxu má své UID (User ID), které ho jednoznačně identifikuje, a GID (Group ID), které určuje jeho primární skupinu. Systém při kontrole oprávnění používá právě tyto číselné identifikátory, nikoli jména uživatelů.
Každý soubor má přiřazené UID a GID a oprávnění se vyhodnocují podle těchto hodnot. Díky GID mohou uživatelé sdílet přístup k souborům v rámci skupiny.
Abychom rozlišili systémové a běžné účty, používají se rozsahy UID:
| Typ účtu | Rozsah UID | Popis |
|---|---|---|
| root | 0 | Správce systému s plnými právy |
| systémový účet | 1–999 | Účty systémových služeb (např. www-data,
syslog) |
| běžný uživatel | 1000+ | Účty vytvořené administrátorem |
Tyto rozsahy se mohou lišit podle distribuce, ale princip zůstává stejný.
Pokud chceme zjistit, kteří uživatelé jsou aktuálně přihlášeni, použijeme příkaz:
users
Vytvoření uživatele
Pro vytvoření nového uživatele použijeme příkaz adduser.
Uživatele itnetwork vytvoříme příkazem:
sudo adduser itnetwork
Systém nás vyzve k zadání hesla a dalších informací:
Adding user `itnetwork' ... Adding new group `itnetwork' (1002) ... Adding new user `itnetwork' (1002) with group `itnetwork' ... Creating home directory `/home/itnetwork' ... Copying files from `/etc/skel' ... New password: Retype new password: passwd: password updated successfully Changing the user information for itnetwork Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n]
Tyto informace není nutné vyplňovat, stačí je potvrdit klávesou Enter a nakonec potvrdit správnost údajů stisknutím Y.
Spolu s novým uživatelem se automaticky vytvoří i jeho domovský
adresář v /home, jehož název odpovídá jménu uživatele.
Uživatele můžeme vytvořit také příkazem useradd. Ten je
méně uživatelsky přívětivý a používá se především ve
skriptech, protože neprobíhá interaktivně. Například:
sudo useradd -m -s /bin/bash -G sudo -c "Petr Novák" petr
sudo passwd petr
Tímto příkazem vytvoříme uživatele petr s domovským
adresářem, výchozím shellem Bash, komentářem "Petr Novák" a přidáme ho
do skupiny sudo. Následně nastavíme jeho heslo.
Změna hesla
Pro nastavení nového hesla nebo změnu stávajícího použijeme příkaz
passwd. Po jeho zadání nás systém vyzve k zadání hesla pro
aktuálně přihlášeného uživatele:
Changing password for itnetwork.
Current password:
New password:
Retype new password:
passwd: password updated successfully
Máme-li administrátorská práva, můžeme změnit heslo i jinému uživateli:
sudo passwd david
Nastavení uživatele
Uživatele můžeme dále spravovat – například ho přidat do skupiny,
změnit jeho domovský adresář nebo uživatelské jméno. K tomu slouží
příkaz usermod a jeho přepínače.
Změna primární skupiny
Uživatel musí patřit alespoň do jedné skupiny. Takovouto skupinu pak
označujeme jako primární. Primární skupinu uživatele změníme
přepínačem -g. Pojďme změnit primární skupinu uživatele
itnetwork na netadmins:
sudo usermod -g netadmins itnetwork
Přidání do skupiny
Každý uživatel může být členem dalších sekundárních skupin.
Uživatele přidáme do sekundární skupiny přepínačem -G.
Abychom zachovali jeho stávající skupiny, použijeme zároveň přepínač
-a. Do sekundární skupiny redactors přidáme
uživatele itnetwork příkazem:
sudo usermod -a -G redactors itnetwork
Chceme-li uživatele přidat do více skupin najednou, napíšeme je za sebe bez mezery a oddělíme čárkou:
sudo usermod -a -G redactors,prteam itnetwork
Při přidávání uživatele do nové skupiny vždy
používáme přepínač -a. Pokud ho vynecháme, uživatel
bude odebrán ze všech skupin, které nejsou v aktuálním
seznamu.
Změna domovského adresáře
Nový domovský adresář uživatele nastavíme přepínačem
-d:
sudo usermod -d /home/itnetwork_new -m itnetwork
Téměř vždy chceme použít přepínač -m, a
tím přesunout obsah stávajícího adresáře do nového.
Změna uživatelského jména
Změnu uživatelského jména neprovádíme příliš často, ale může
nastat situace, která bude změnu vyžadovat. Nové uživatelské jméno
admin nastavíme s využitím přepínače -l:
sudo usermod -l admin itnetwork
Příkazem usermod je dále možné změnit UID
uživatele, zamknout či odemknout profil, přidat k účtu komentář a
podobně. Nápovědu k těmto možnostem získáme příkazem:
sudo usermod --help
Přepnutí uživatele
Někdy potřebujeme využít oprávnění jiného uživatelského profilu.
Dočasné přihlášení jako jiný uživatel nám umožní přístup k
adresářům a souborům, ke kterým z našeho profilu nemáme přístup. K tomu
slouží příkaz su, za který uvedeme jméno uživatele, ke
kterému se přihlašujeme:
su administrator
Pokud nemáme oprávnění k přímému přepnutí, použijeme:
sudo su administrator
Tato relace platí pouze pro aktuální terminál. V jiném
terminálu zůstáváme přihlášeni pod původním uživatelem. Relaci
ukončíme příkazem exit.
Odstranění uživatele
K odstranění uživatele máme příkaz userdel:
sudo userdel itnetwork
Pokud uživatel pracuje (má otevřenou relaci nebo
běžící procesy), může příkaz userdel selhat.
Pokud k příkazu přidáme přepínač -r, odstraníme
současně i domovský adresář:
sudo userdel -r itnetwork
Závěr
V této lekci jsme se seznámili se správou uživatelů v Linuxu pomocí terminálu. Naučili jsme se vytvářet a spravovat uživatelské účty, upravovat jejich nastavení a přepínat mezi jednotlivými uživateli. Zároveň jsme si vysvětlili, jak systém uživatele identifikuje a jak pracuje s jejich oprávněními. Tyto dovednosti jsou důležité zejména při správě systému a serverů, kde potřebujeme řídit přístup uživatelů k souborům a službám.
V příští lekci, Linuxový terminál (Bash) - Správa skupin a ACL, se naučíme spravovat skupiny a ukážeme si, jak v Linuxu přidělovat oprávnění jednotlivým uživatelům pomocí ACL.


