Lekce 11 - Linuxový terminál (Bash) - Správa uživatelů
V minulé lekci, Linuxový terminál (Bash) - Standardní vstup/výstup a expanze, jsme přesměrovali standardní vstup a výstup, naučili se používat filtry a roury. V závěru lekce jsme si vysvětlili expanzi.
Již víme, že je Linux víceuživatelský operační systém, a tak si můžeme otevřít několik oken terminálu a v každém z nich se přihlásit jako jiný uživatel. V dnešní lekci se naučíme efektivně vytvářet a dále spravovat uživatele.
Uživatelé v Linuxu
Linux všechny uživatele zapisuje do seznamu, který nalezneme v souboru
passwd v adresáři /etc. Pojďme soubor otevřít a
podívat se, jací jsou v systému uživatelé:
less /etc/passwd
Na každém řádku nalezneme jednoho uživatele, a tak si
snadno můžeme spočítat kolik uživatelů v systému existuje. Použijeme k
tomu filtr wc (word count) s přepínačem -l, který
bude počítat řádky:
less /etc/passwd | wc -l
V systému budeme mít pravděpodobně kolem 30 uživatelů. Na prvním
řádku nalezneme vždy uživatele root s UID 0, poté
budou následovat uživatele jednotlivých služeb, jako například
lp, mail, www-data a další. Na konci
souboru pak nalezneme uživatele, které jsme si vytvořili my.
Pokud se podíváme na libovolný řádek souboru, všimneme si, že se
skládá z několika informací oddělených dvojtečkou (:).
Jejich význam je následující:
| zaboj | x | 1001 | 1001 | ,,, | /home/zaboj | /bin/bash | 
| Jméno uživatele | Heslo uživatele | Unikátní ID uživatele (UID) | ID skupiny (GID) | Informace o profilu | Domovský adresář | Výchozí shell | 
Na druhé pozici bývalo heslo, dnes je však nahrazeno znakem
x. Všechna hesla jsou uložena v zahashované podobě v souboru
/etc/shadow.
Pokud bychom chtěli vědět, kteří uživatelé jsou aktuálně přihlášeni, zadáme do terminálu příkaz:
users
Vytvoření uživatele
Začneme tím, že si příkazem adduser vytvoříme nového
uživatele itnetwork. Do terminálu napíšeme:
sudo adduser itnetwork
Systém nás následně vyzve k zadání bezpečného 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]
Informace o uživateli není povinné vyplňovat. Stačí je pouze potvrdit
klávesou Enter a nakonec odsouhlasit správnost všech údajů
stisknutím Y. Spolu s novým uživatelem se automaticky
vytvoří i jeho domovský adresář. Ten nalezneme v adresáři
/home a jeho název bude shodný s jménem uživatele.
Nového uživatele můžeme vytvořit také příkazem
useradd. V tomto případě však musíme heslo a další informace
nastavit ručně pomocí přepínačů, a tak se tento způsob využívá
například ve skriptech.
Změna hesla
Pro nastavení nového hesla, či ke změně stávající hesla využijeme
příkaz passwd. Po zadání příkazu 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:
passwd david
Nastavení uživatele
Každého uživatele potřebujeme dále spravovat, například ho přidat do
další skupiny, změnit mu domovský adresář či uživatelské jméno. K
tomuto slouží příkaz usermod a několik přepínačů.
Změna primární skupiny
Uživatel musí patřit alespoň do jedné skupiny. Takovouto skupinu pak
označujeme jako primární. Pojďme změnit primární skupinu uživatele
itnetwork na netadmins:
usermod -g netadmins itnetwork
Přidání do skupiny
Každý uživatel však může být členem až 32 sekundárních skupin. Do
sekundární skupiny redactors přidáme uživatele
itnetwork příkazem:
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:
usermode -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é nejsem v aktuálním
seznamu.
Změna domovského adresáře
Nový domovský adresář uživatele nastavíme přepínačem
-d:
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:
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:
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, který následuje jméno uživatele za
kterého se přihlašujeme:
sudo su administrator
Tato relace je dostupná pouze z aktuálního terminálu, v
jiném budeme stále přihlášení pod naší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 k příkazu přidáme přepínač -r, odstraníme
současně i domovský adresář:
sudo userdel -r itnetwork
To je pro dnešní lekci vše.
V příští lekci, Linuxový terminál (Bash) - Správa skupin a ACL, se naučíme spravovat skupiny. Ukážeme si, jak v Linuxu přidělovat oprávnění jednotlivým uživatelům pomocí ACL.
 
				
