NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

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.


 

Předchozí článek
Linuxový terminál (Bash) - Standardní vstup/výstup a expanze
Všechny články v sekci
Základy Linuxu
Přeskočit článek
(nedoporučujeme)
Linuxový terminál (Bash) - Správa skupin a ACL
Článek pro vás napsal Václav Franz
Avatar
Uživatelské hodnocení:
82 hlasů
Aktivity