NOVINKA: Kurz kybernetické bezpečnosti s akreditací MŠMT, nyní již od 0 Kč. Staň se žádaným profesionálem. Zjisti více:
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

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.


 

Předchozí článek
Kvíz - Základy příkazového řádku v Bashi
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í:
114 hlasů
Aktivity