Základním rysem každého unixového systému je podpora více uživatelů s možností jemného nastavení práv. Každý, kdo do systému přistupuje, musí mít vlastní unikátní uživatelské jméno a libovolné heslo. Dále by měl mít vlastní domovský adresář, umístěný v adresáři /home. Veškeré informace o uživateli a jeho nastaveních jsou zapsány v souboru /etc/passwd. Práva na editaci tohoto souboru má z bezpečnostních důvodů pouze uživatel root, avšak právo na čtení musí mít kdokoliv, neboť informace z tohoto souboru využívá mnoho programů, což předpokládá čitelnost souboru pro všechny uživatele.
Právě z tohoto důvodu už soubor /etc/passwd neobsahuje hesla. Ta jsou v šifrované podobě umístěna v souboru /etc/shadow, k němuž může přistupovat pouze administrátor (root). Oddělení hesla od ostatních informací o uživateli se nazývá stínění.
Samotné jádro OS Linux považuje uživatele za pouhé číslo tzv. UID (User ID), od něj se pak odvozují samotné uživatelské účty, které se dále dělí na 3 typy:
Základní databází uživatelů je v systému textový soubor /etc/passwd (angl. password file), v němž jsou uvedeny platná uživatelská jména a další k nim přidružené informace. Každému uživateli odpovídá v souboru jeden záznam - řádek, který je rozdělen na sedm polí, jejichž oddělovačem je dvojtečka. Význam jednotlivých položek je následující:
Každý uživatel systému má k souboru /etc/passwd přístup (může jej číst). Může tedy například zjistit přihlašovací jména
ostatních uživatelů. (To ale neznamená, že jsou všem přístupná i hesla!)
Zobrazení souboru passwd provedeme příkazem:
cat /etc/passwd
V souboru passwd jsou místo hesel jen znaky "x", protože samotná hesla jsou uložena v bezpečnějším souboru "shadow", tedy
stínovém souboru hesel. Tento soubor může číst pouze superuživatel!
Zobrazení informací v něm provedeme příkazem:
su root cat /etc/shadow
Jak funguje šifrování hesla a proč nejde jen tak dešifrovat? Je to prosté: Ve chvíli, kdy si uživatel zvolí své přístupové
heslo, je pro něj určena také hodnota zvaná salt. Jde o náhodně vygenerované číslo, s jehož pomocí se zakóduje heslo,
které si uživatel zvolil. Jak salt, tak i samotné kódované heslo, jsou uloženy v souboru /etc/shadow.
Při přihlašování se nejprve načte hodnota salt a s její pomocí se zakóduje heslo, které uživatel zadal při tomto přihlašování.
Pokud výsledný řetězec odpovídá zápisu v /etc/shadow, je uživatel oprávněn ke vstupu do systému. To vysvětluje, proč
stejné heslo u více uživatelských účtů může mít v zašifrované formě zcela odlišnou podobu.
Jak už jsme si řekli, uživatelské skupiny slouží k diferenciaci uživatelských pravomocí. Například určíme, že několik
uživatelů má přístup na Internet - přiřadíme je tedy do skupiny Internet. Dalším chceme zakázat hraní her - vyřadíme je
tedy ze skupiny Games. Všichni uživatelé dané skupiny tedy sdílí přístupová práva, která nastavíme této skupině.
Každý uživatel systému musí náležet alespoň do jedné uživatelské skupiny. Může ale také patřit do více skupin. Tímto
způsobem je možné snadno kombinovat práva tak, aby byla na míru ušita konkrétnímu uživateli a jeho potřebám.
Veškeré informace o skupinách, jejich nastavení a členech, jsou uloženy v souboru /etc/group.
Tento soubor obsahuje:
useradd pokus
Co se udělá v souboru passwd:
Co se udělá v souboru grub:
Domovský adresář:
ls -la /home/pokus
Nastavení hesla:
passwd pokus
Zrušení účtu:
userdel pokus
Tímto příkazem jsou smazány záznamy z konfiguračních souborů, ale soubory, kterých byl tento uživatel vlastník zůstanou!
Zrušení účtu včetně souborů:
userdel -r pokus