Jak spravovat a vypisovat uživatele v Ubuntu: Kompletní průvodce uživatelskými účty, oprávněními a příkazy

目次

1. Úvod

Ubuntu je oblíbená distribuce Linuxu používaná mnoha uživateli, od osobních prostředí po podnikové serverové systémy. Při správě systému Ubuntu je správa uživatelských účtů nezbytná. Zejména kontrola seznamu registrovaných uživatelů pomáhá se správou zabezpečení a organizací účtů.

Tento článek vysvětluje, jak vypisovat uživatele na Ubuntu. Pokrývá vše od základních příkazů po metody pro získání podrobných informací, což je užitečné pro začátečníky i zkušené administrátory.

2. Jak zkontrolovat seznam uživatelů v Ubuntu

V Ubuntu lze informace o uživatelích snadno získat pomocí specifických souborů a příkazů. Následující metody umožňují zkontrolovat seznam uživatelů.

2.1 Zobrazení seznamu uživatelů pomocí /etc/passwd

V Ubuntu jsou všechny informace o uživatelích uloženy v souboru /etc/passwd. Zobrazením tohoto souboru můžete ověřit všechny registrované uživatele.

Příklad příkazu

cat /etc/passwd

Spuštění tohoto příkazu zobrazí informace ve formátu následujícím:

root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash

Každý řádek se skládá z polí oddělených dvojtečkami (:), která obsahují následující informace:

  1. Uživatelské jméno
  2. Heslo (nyní reprezentováno jako x)
  3. ID uživatele (UID)
  4. ID skupiny (GID)
  5. Informace o uživateli (pole komentáře)
  6. Domovský adresář
  7. Výchozí přihlašovací shell

Protože tento soubor obsahuje i systémové uživatele, můžete extrahovat pouze běžné přihlašovací uživatele pomocí metod níže uvedených.

2.2 Vypisování pouze uživatelských jmen

K vypisování pouze uživatelských jmen použijte následující příkaz:

cut -d: -f1 /etc/passwd

Alternativně můžete použít příkaz awk:

awk -F':' '{ print $1 }' /etc/passwd

Příklad výstupu:

root
user1
user2

2.3 Vyhledávání specifického uživatele

K ověření, zda specifický uživatel existuje, použijte příkaz grep:

grep 'user1' /etc/passwd

Tento příkaz zobrazí pouze záznam související s user1.

2.4 Vypisování skupin prostřednictvím /etc/group

K zkontrolování skupin, ke kterým uživatel patří, se podívejte na soubor /etc/group:

cat /etc/group | cut -d: -f1

K vypisování skupin, ke kterým specifický uživatel patří, použijte:

groups user1

Příklad výstupu:

user1 : user1 sudo

To znamená, že user1 je také členem skupiny sudo.

3. Jak zkontrolovat aktuálně přihlášené uživatele

Ubuntu poskytuje několik příkazů k ověření, kteří uživatelé jsou aktuálně přihlášeni. Tyto příkazy pomáhají získat informace o relacích a přihlášení.

3.1 Kontrola přihlášených uživatelů pomocí who

Příkaz who vypíše všechny aktuálně přihlášené uživatele.

Příklad příkazu

who

Příklad výstupu

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30

Vysvětlení polí

  1. Uživatelské jméno (přihlášený uživatel)
  2. Název terminálu (např. tty1 pro lokální, pts/0 pro SSH)
  3. Čas přihlášení

Příkaz who je jednoduchý a užitečný, když chcete rychle zkontrolovat stav přihlášení.

3.2 Kontrola podrobných informací pomocí w

Příkaz w poskytuje podrobnější informace než who.

Příklad příkazu

w

Příklad výstupu

11:35:25 up 2:15,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user1    tty1                      10:05    1:30m  0.10s  0.10s -bash
user2    pts/0    192.168.1.10      11:30    0.00s  0.05s  0.02s sshd

Vysvětlení polí

  • Doba provozu systému
  • Počet přihlášených uživatelů
  • Průměrné zatížení CPU
  • Uživatelské jméno
  • Terminál
  • Vzdálený hostitel
  • Čas přihlášení
  • Doba nečinnosti
  • Využití CPU
  • Běžící proces

IP adresa v poli FROM pomáhá ověřit vzdálená SSH přihlášení, což je užitečné pro monitorování a správu zabezpečení.

3.3 Zobrazení přihlášených uživatelů pomocí users

Pokud chcete zjednodušený seznam zobrazující pouze uživatelská jména přihlášených uživatelů, je užitečný příkaz users.

Příklad příkazu

users

Příklad výstupu

user1 user2

Tento příkaz je zjednodušenou verzí who a zobrazuje pouze přihlášená uživatelská jména.

3.4 Identifikace aktuálního uživatele pomocí whoami

Pro zjištění, který uživatel spouští aktuální relaci, použijte příkaz whoami.

Příklad příkazu

whoami

Příklad výstupu

user1

Tento příkaz jednoduše zobrazí uživatelské jméno uživatele aktuální relace, což je užitečné pro ověření kontextu provádění.

3.5 Kontrola historie přihlášení pomocí last

Příkaz last vám umožní prohlédnout historii přihlášení uživatelů.

Příklad příkazu

last

Příklad výstupu

user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user2    tty1                          Mon Feb 15 09:30 - 10:00  (00:30)
root     tty1                          Sun Feb 14 22:15 - 23:45  (01:30)
  • Uživatelské jméno
  • Použitý terminál
  • Vzdálená IP adresa
  • Čas zahájení přihlášení
  • Čas odhlášení (nebo stále přihlášen)
  • Celková doba trvání relace

Tento příkaz pomáhá administrátorům sledovat předchozí přístupy a detekovat podezřelé přihlášení.

4. Jak zkontrolovat podrobné informace o uživateli

Ubuntu poskytuje několik příkazů pro získání podrobných informací o registrovaných uživatelích. Prohlížení detailů jako UID, členství ve skupinách a přihlašovacího shellu pomáhá administrátorům přesně spravovat oprávnění. Tato sekce vysvětluje metody pomocí id, groups, finger a chage.

4.1 Kontrola UID, GID a skupin pomocí id

Příkaz id zobrazuje UID (identifikátor uživatele), GID (identifikátor skupiny) a členství ve skupinách.

Příklad příkazu
id user1
Příklad výstupu
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
  • uid → Identifikátor uživatele
  • gid → Identifikátor primární skupiny
  • groups → Všechny skupiny, do kterých uživatel patří
Zkontrolovat informace o aktuálním uživateli
id

4.2 Kontrola členství ve skupinách pomocí groups

Příkaz groups rychle vypíše skupiny, do kterých uživatel patří.

Příklad příkazu
groups user1
Příklad výstupu
user1 : user1 sudo docker

groups je užitečný, když chcete vidět jen názvy skupin bez podrobných ID.

4.3 Získání podrobných informací o uživateli pomocí finger

Příkaz finger poskytuje podrobné informace o uživateli, jako je celé jméno, přihlašovací adresář a typ shellu.

Příkaz pro instalaci
sudo apt install finger
Příklad příkazu
finger user1
Příklad výstupu
Login: user1                    Name: User One
Directory: /home/user1          Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
  • Login → Uživatelské jméno
  • Name → Celé jméno (volitelné)
  • Directory → Domovský adresář
  • Shell → Výchozí shell
  • Last login → Čas posledního přihlášení

4.4 Kontrola vypršení platnosti hesla pomocí chage

Příkaz chage umožňuje administrátorům zkontrolovat dobu platnosti hesla a poslední změnu hesla.

Příklad příkazu
sudo chage -l user1
Příklad výstupu
Last password change            : Jan 15, 2025
Password expires                : Mar 15, 2025
Password inactive               : never
Account expires                 : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
  • Poslední změna hesla → Datum poslední změny hesla
  • Platnost hesla vyprší → Datum vypršení platnosti hesla
  • Heslo neaktivní → Doba nečinnosti před neplatností hesla
  • Platnost účtu vyprší → Datum vypršení platnosti účtu
  • Minimální počet dní mezi změnami hesla
  • Maximální počet dní mezi změnami hesla
  • Dny varování před vypršením platnosti hesla

Správci mohou tyto informace použít k prosazování zásad pro hesla a zlepšení bezpečnosti systému.

5. Správa uživatelů v Ubuntu (Přidání, Odstranění, Úprava)

Správná správa uživatelů zlepšuje stabilitu a bezpečnost systému. Ubuntu poskytuje několik administrativních příkazů, jako jsou adduser, deluser a usermod. Tato sekce vysvětluje, jak přidávat, odstraňovat a upravovat uživatele.

5.1 Přidávání uživatelů

Ubuntu umožňuje přidávat nové uživatele pomocí příkazů adduser nebo useradd.

5.1.1 Příkaz adduser (Doporučeno)

Příkaz adduser poskytuje interaktivní způsob přidávání uživatelů.

sudo adduser newuser

Příklad interaktivního výzevu:

Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
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]
  • Uživatelský účet
  • Dedikovaná skupina
  • Domovský adresář (/home/newuser)
  • Heslo pro přihlášení
  • Základní informace o účtu

5.1.2 Příkaz useradd (Pokročilé)

Příkaz useradd je přátelský k scriptům a nabízí jemnější ovládání, ale neautomaticky nastavuje všechno.

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
  • -m → Vytvořit domovský adresář
  • -s /bin/bash → Nastavit přihlašovací shell

Při používání tohoto příkazu je třeba heslo nastavit odděleně.

5.2 Odstraňování uživatelů

Uživatele můžete odstranit pomocí deluser nebo userdel.

5.2.1 Příkaz deluser (Doporučeno)

Příkaz deluser odstraní uživatelský účet.

sudo deluser newuser
Odstranit také domovský adresář
sudo deluser --remove-home newuser

Toto odstraní účet a adresář /home/newuser.

5.2.2 Příkaz userdel (Pokročilé)

Příkaz userdel nabízí větší ovládání.

sudo userdel newuser
sudo userdel -r newuser

5.3 Úprava existujících uživatelů

K úpravě informací existujícího uživatele použijte příkaz usermod.

5.3.1 Změna uživatelského jména

sudo usermod -l newname oldname

5.3.2 Změna domovského adresáře

sudo usermod -d /new/home/path user1
sudo usermod -d /home/newuser -m user1

5.3.3 Úprava členství ve skupině

sudo usermod -aG sudo user1
groups user1

5.3.4 Změna hesla

sudo passwd user1
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

6. Praktické scénáře pro správu uživatelů

Správa uživatelů v Ubuntu jde za vypsáním a úpravou účtů. Porozumění tomu, jak aplikovat příkazy v reálných scénářích, je nezbytné pro udržování bezpečného a efektivního prostředí. Tato sekce představuje běžné případy použití a jak je řešit.

6.1 Vyhledávání uživatelů odpovídajících specifickým kritériím

6.1.1 Zobrazení uživatelů s administrátorskými právy (sudo)

K vypsání uživatelů se sudo právy použijte příkaz getent k prohlédnutí souboru /etc/group:

getent group sudo

Příklad výstupu

sudo:x:27:user1,user2
  • sudo:x:27: → Informace o skupině
  • user1,user2 → Uživatelé patřící do skupiny sudo

6.1.2 Zobrazení uživatelů schopných přihlášení

Soubor /etc/passwd obsahuje systémové účty. K extrakci pouze uživatelů, kteří se mohou přihlásit:

grep '/bin/bash' /etc/passwd

Příklad výstupu

user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
  • Jsou zahrnuti pouze uživatelé se shellami jako /bin/bash nebo /bin/sh
  • Systémové účty používající /usr/sbin/nologin nebo /bin/false jsou vyloučeny

6.1.3 Zobrazení systémových uživatelů (účty bez přihlášení)

grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd

Příklad výstupu

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false

To pomáhá správci identifikovat účty, které by neměly být omylem odstraněny.

6.2 Periodické čištění nepoužívaných uživatelů

6.2.1 Zobrazení posledního přihlášení všech uživatelů

lastlog

Příklad výstupu

Username         Port     From             Latest
root            tty1                      Mon Feb 12 14:02:08 +0000 2025
user1           pts/0    192.168.1.10      Mon Jan 15 10:30:12 +0000 2025
user2           pts/1    192.168.1.20      Never logged in
  • Nikdy se nepřihlásil → Uživatel se nikdy nepřihlásil
    sudo deluser user2 --remove-home
    

6.2.2 Ověření poslední změny hesla

sudo chage -l user1
sudo passwd --expire user1

Při příštím přihlášení uživatele bude pro bezpečnostní důvody vyžadováno resetování hesla.

6.3 Kontrola uživatelů připojených přes SSH

who | grep pts

Příklad výstupu

user1    pts/0        192.168.1.10     11:30

To pomáhá identifikovat vzdálené uživatele a jejich IP adresy.

6.4 Export všech informací o uživatelích do CSV

getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv

Příklad users.csv

root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
  • Exportuje uživatelské jméno, UID, GID a domovský adresář
  • Data lze analyzovat pomocí Excelu nebo tabulek

7. Často kladené otázky

7.1 Můžu přímo upravovat /etc/passwd?

Odpověď: Přímé úpravování je nedoporučeno. Nesprávné změny mohou zabránit přihlášení nebo poškodit systém.

Bezpečnější metoda:

sudo vipw

7.2 Rozdíl mezi příkazy who a users

CommandDescription
whoDisplays detailed login information
usersDisplays only usernames of logged-in users

7.3 Jak zkontrolovat historii přihlášení pro konkrétního uživatele

last user1

7.4 Jak změnit heslo uživatele

sudo passwd user1

7.5 Jak dočasně deaktivovat uživatele

sudo usermod -L user1
sudo usermod -U user1

7.6 Přidat uživatele do skupiny sudo

sudo usermod -aG sudo user1

7.7 Změnit domovský adresář uživatele

sudo usermod -d /new/home/path -m user1

7.8 Kompletně odstranit uživatele a jejich data

sudo deluser --remove-home user1

nebo

sudo userdel -r user1

7.9 Zkontrolovat podrobnou aktivitu přihlášených uživatelů

w
  • Přihlášení uživatelé
  • Vzdálené IP adresy
  • Aktuální procesy
  • Zátěž systému

To umožňuje správci monitorovat využití a detekovat neoprávněný přístup.