Jak zkontrolovat seznam uživatelů v Ubuntu | Kompletní průvodce přihlášením, správou a mazáním

目次

1. Úvod

Ubuntu je oblíbená distribuce Linuxu používaná mnoha uživateli, od osobního použití po podnikové serverové prostředí. Správa uživatelských účtů je nezbytná při administraci systému Ubuntu. Zejména kontrola seznamu registrovaných uživatelů pomáhá se správou bezpečnosti a organizací účtů.

Tento článek poskytuje podrobné vysvětlení, jak zkontrolovat seznam uživatelů v Ubuntu. Pokrývá vše od základních příkazů po získávání podrobných informací o uživatelích, což je užitečné pro začátečníky i pokročilé uživatele.

2. Jak zkontrolovat seznam uživatelů v Ubuntu

V Ubuntu lze informace o uživatelích snadno získat pomocí specifických souborů nebo příkazů. Seznam uživatelů můžete zkontrolovat následujícími metodami.

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

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

Příklad příkazu

cat /etc/passwd

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

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čkou („:„) a obsahuje následující informace:

  1. Uživatelské jméno
  2. Heslo (aktuálně zobrazeno jako „x“ z bezpečnostních důvodů)
  3. ID uživatele (UID)
  4. ID skupiny (GID)
  5. Informace o uživateli (Komentáře)
  6. Domovský adresář
  7. Výchozí shell

Protože tento soubor obsahuje také systémové uživatele, můžete použít následující metodu k extrakci pouze běžných přihlašovacích uživatelů.

2.2 Získání pouze uživatelských jmen

K zobrazení pouze seznamu 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

Spuštěním tohoto příkazu se zobrazí pouze informace týkající se user1.

2.4 Získání informací o skupinách s /etc/group

K ověření, do kterých skupin uživatel patří, se podívejte na soubor /etc/group.

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

K ověření skupin, do kterých specifický uživatel patří, použijte následující příkaz:

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

V Ubuntu existuje několik způsobů, jak zkontrolovat, kteří uživatelé jsou aktuálně přihlášeni do systému. Pomocí specifických příkazů můžete získat informace o aktivních relacích a přihlášených uživatelích.

3.1 Kontrola přihlášených uživatelů s příkazem 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 (Fyzická konzole tty1 nebo vzdálená relace pts/0 )
  3. Čas přihlášení

Příkaz who je jednoduchý a užitečný pro rychlou kontrolu přihlášených uživatelů.

3.2 Kontrola podrobné aktivity uživatelů s příkazem 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í

  • Čas provozu systému (up 2:15)
  • Počet přihlášených uživatelů (2 users)
  • Průměrné zatížení CPU
  • Uživatelské jméno (USER)
  • Připojený terminál (TTY)
  • Zdroj vzdáleného připojení (FROM)
  • Čas přihlášení (LOGIN@)
  • Čas nečinnosti (IDLE)
  • Využití CPU (JCPU, PCPU)
  • Běžící proces (WHAT)

Protože pole FROM zobrazuje vzdálenou IP adresu pro SSH připojení, je tento příkaz užitečný pro správu a monitorování vzdáleného přístupu.

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

Pokud potřebujete pouze jednoduchý seznam aktuálně přihlášených uživatelských jmen, použijte příkaz users.

Příklad příkazu

users

Příklad výstupu

user1 user2

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

3.4 Kontrola aktuálního uživatele pomocí příkazu whoami

Pokud chcete zkontrolovat, který uživatel aktuálně spouští terminálovou relaci, použijte příkaz whoami.

Příklad příkazu

whoami

Příklad výstupu

user1

Tento příkaz je užitečný pro ověření, který uživatelský účet spouští příkazy.

3.5 Kontrola nedávné historie přihlášení pomocí příkazu last

Příkaz last vám umožňuje zkontrolovat historii přihlášení minulých 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)

Vysvětlení polí

  • Uživatelské jméno
  • Připojený terminál (tty1, pts/0, atd.)
  • Zdroj vzdáleného připojení (IP adresa)
  • Čas zahájení přihlášení
  • Čas odhlášení (nebo „stále přihlášen“ pro aktivní relace)
  • Celková doba přihlášení (např. 00:30 = 30 minut)

Tento příkaz je užitečný pro monitorování minulých přihlášení a detekci neoprávněného přístupu.

4. Jak zkontrolovat podrobné informace o uživatelích

V Ubuntu je k dispozici několik příkazů pro získání podrobných informací o registrovaných uživatelích. Kontrolou UID uživatele, skupin, přihlašovací shell a dalších atributů mohou správci efektivně spravovat oprávnění a bezpečnostní nastavení. Tato sekce vysvětluje, jak získat podrobné informace o uživatelích pomocí příkazů jako id, finger a chage.

4.1 Kontrola UID uživatele, GID a skupin pomocí příkazu id

Příkaz id poskytuje informace o UID (User ID) uživatele, GID (Group ID) 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)
Vysvětlení polí
  • uid=1001(user1)ID uživatele (Unikátní identifikátor pro uživatele)
  • gid=1001(user1)ID skupiny (Primární skupina uživatele)
  • groups=1001(user1),27(sudo),1002(docker)Seznam skupin, ke kterým uživatel patří

Tyto informace jsou užitečné při ověřování, ke kterým skupinám je uživatel přiřazen.

Kontrola informací pro aktuálně přihlášeného uživatele
id

Spuštěním tohoto příkazu se zobrazí ID informace pro aktuálně přihlášeného uživatele.

4.2 Kontrola skupin uživatele pomocí příkazu groups

Pro kontrolu, ke kterým skupinám konkrétní uživatel patří, použijte příkaz groups.

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

Zatímco příkaz id také poskytuje informace o skupinách, příkaz groups je pohodlnější, když potřebujete zkontrolovat pouze názvy skupin.

Kontrola skupin pro aktuálně přihlášeného uživatele
groups

Tento příkaz zobrazuje skupiny, ke kterým aktuální uživatel patří.

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

Příkaz finger poskytuje další podrobnosti, jako je úplné jméno, informace o přihlášení a typ shellu.

Instalace finger

Příkaz finger není nainstalován ve výchozím nastavení. Nainstalujte ho následujícím příkazem:

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
Vysvětlení polí
  • Login → Uživatelské jméno
  • Name → Celé jméno (může být prázdné)
  • Directory → Uživatelský domovský adresář
  • Shell → Používaný shell
  • Last login → Poslední zaznamenaný čas přihlášení

Systémoví administrátoři mohou použít finger k rychlé kontrole, kteří uživatelé jsou přihlášeni, a jejich poslední aktivitu přihlášení.

4.4 Kontrola vypršení hesla pomocí příkazu chage

Administrátoři mohou použít příkaz chage k kontrole podrobností o vypršení hesla a datu poslední změny hesla pro uživatele.

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
Vysvětlení polí
  • Last password change → Datum poslední aktualizace hesla
  • Password expires → Datum vypršení hesla
  • Password inactive → Období před tím, než se heslo stane neaktivním
  • Account expires → Datum, kdy bude účet deaktivován
  • Minimum number of days between password change → Požadovaný minimální interval mezi změnami hesla
  • Maximum number of days between password change → Maximální období, po které zůstává heslo platné
  • Number of days of warning before password expires → Počet dní před vypršením, kdy uživatelé obdrží varování

Administrátoři mohou tyto informace použít k prosazování zásad pro hesla a zlepšení bezpečnosti.

5. Správa uživatelů v Ubuntu (Přidávání, mazání a úprava)

Správná správa uživatelů je klíčová pro systémové administrátory v Ubuntu. Přidávání nových uživatelů, odstraňování starých a úprava existujících informací o uživatelích pomáhá udržovat bezpečnost a efektivitu. Tato sekce vysvětluje, jak spravovat uživatele pomocí příkazů jako adduser, deluser a usermod.

5.1 Přidání uživatele

K vytvoření nového uživatele v Ubuntu můžete použít příkaz adduser nebo useradd.

5.1.1 Použití příkazu adduser (Doporučeno)

Příkaz adduser je interaktivní nástroj, který zjednodušuje proces vytváření uživatele.

Příklad příkazu
sudo adduser newuser
Interaktivní proces
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]
Co se vytvoří
  • Uživatelský účet
  • Dedikovaná skupina
  • Domovský adresář (/home/newuser)
  • Přihlašovací heslo
  • Základní informace o uživateli

Tato metoda je nejběžnější a je přátelská k začátečníkům.

5.1.2 Použití příkazu useradd (Pro pokročilé uživatele)

Příkaz useradd se liší od adduser tím, že je to nástroj nižší úrovně určený pro skriptování a automaticky nevytváří domovský adresář.

Příklad příkazu
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Popis voleb
  • -m → Vytvoří domovský adresář
  • -s /bin/bash → Nastaví výchozí shell na /bin/bash

Při používání useradd musíte ručně nastavit heslo pro nového uživatele.

5.2 Mazání uživatele

K odstranění uživatelského účtu, který již není potřebný, použijte příkaz deluser nebo userdel.

5.2.1 Použití příkazu deluser (Doporučeno)

Příkaz deluser je protějškem adduser a slouží k odstranění uživatelů.

Příklad příkazu
sudo deluser newuser
Odstranění i domovského adresáře
sudo deluser --remove-home newuser

Tento příkaz odstraní jak uživatelský účet, tak domovský adresář uživatele (/home/newuser).

5.2.2 Použití příkazu userdel (Pro pokročilé uživatele)

Příkaz userdel poskytuje přímější kontrolu nad odstraněním uživatelů.

Příklad příkazu
sudo userdel newuser
Odstranění domovského adresáře
sudo userdel -r newuser

Na rozdíl od deluser může být userdel riskantní, pokud se použije nesprávně, takže buďte opatrní.

5.3 Úprava informací o uživatelích

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

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

Příklad příkazu
sudo usermod -l newname oldname

Toto změní oldname na newname.

5.3.2 Změna domovského adresáře

K změně domovského adresáře uživatele použijte možnost -d.

Příklad příkazu
sudo usermod -d /new/home/path user1
Přesunutí aktuálního domovského adresáře do nové lokace
sudo usermod -d /home/newuser -m user1

5.3.3 Změna členství uživatele ve skupině

K přidání uživatele do jiné skupiny použijte usermod -aG.

Přidání uživatele do skupiny sudo
sudo usermod -aG sudo user1
Kontrola aktuálního členství ve skupině
groups user1

5.3.4 Změna hesla uživatele

Správci mohou změnit heslo uživatele pomocí příkazu passwd.

Příklad příkazu
sudo passwd user1
Příklad výstupu
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

Tento příkaz aktualizuje heslo pro user1 a vyžaduje, aby při příštím přihlášení použil nové heslo.

6. Praktické případy použití pro správu uživatelů

Správa uživatelů v Ubuntu není jen o jejich výpisu, přidávání nebo odstraňování. Porozumění tomu, jak efektivně spravovat uživatele na základě specifických scénářů, je klíčové. Tato sekce poskytuje příklady z reálného světa a příkazů, které vám pomohou spravovat uživatele efektivně.

6.1 Hledání uživatelů na základě specifických kritérií

6.1.1 Výpis administrátorů (Uživatelů s oprávněními sudo)

Systémoví administrátoři často potřebují zkontrolovat, kteří uživatelé mají oprávnění sudo. Tyto informace můžete získat pomocí příkazu getent k prohledání souboru /etc/group.

Příklad příkazu
getent group sudo
Příklad výstupu
sudo:x:27:user1,user2

Vysvětlení výstupu:

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

Tato metoda vám umožňuje rychle ověřit, kteří uživatelé mají administrátorská oprávnění.

6.1.2 Výpis pouze uživatelů schopných přihlášení

Soubor /etc/passwd obsahuje jak systémové, tak běžné uživatele. K nalezení uživatelů, kteří se skutečně mohou přihlásit, filtrujte uživatele s platným shell.

Příklad příkazu
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

Výhody této metody:

  • Jsou zobrazeni pouze uživatelé s /bin/bash nebo /bin/sh
  • Systémové účty s nologin jsou vyloučeny

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

Systémoví uživatelé obvykle mají nastavený /usr/sbin/nologin nebo /bin/false jako výchozí shell. Můžete je filtrovat pomocí následujícího příkazu.

Příklad příkazu
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

Kontrola systémových účtů zajišťuje, že nebudou omylem odstraněny.

6.2 Pravidelné odstraňování nepoužívaných uživatelů

6.2.1 Výpis uživatelů, kteří se nedávno nepřihlásili

Pro odstranění neaktivních uživatelů zkontrolujte historii posledního přihlášení pomocí příkazu lastlog.

Příklad příkazu
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
  • Never logged in → Uživatel se nikdy nepřihlásil

Na základě těchto informací můžete rozhodnout, zda odstranit neaktivní účty.

Příkaz k odstranění nepoužívaného účtu
sudo deluser user2 --remove-home

6.2.2 Kontrola data poslední změny hesla

Příkaz chage vám umožní zkontrolovat, kdy uživatel naposledy změnil své heslo.

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

Pokud heslo nebylo dlouho změněno, možná budete chtít vynutit reset.

Vynucení změny hesla
sudo passwd --expire user1

Toto vynutí uživatele k nastavení nového hesla při příštím přihlášení.

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

Při správě vzdáleného serveru je důležité sledovat kterí uživatelé jsou připojeni přes SSH.

Příklad příkazu
who | grep pts
Příklad výstupu
user1    pts/0        192.168.1.10     11:30

Tento příkaz pomáhá identifikovat vzdálené uživatele a jejich IP adresy.

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

Pokud potřebujete vytvořit zprávu se seznamem všech uživatelů, můžete data exportovat pomocí příkazu getent.

Příklad příkazu
getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv
Příklad CSV výstupu
root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
  • Názvy uživatelů, UID, GID a domovské adresáře jsou exportovány ve formátu CSV
  • Data lze analyzovat pomocí Excelu nebo Google Sheets

7. FAQ (Často kladené otázky)

Tato sekce odpovídá na běžné otázky týkající se správy uživatelů v Ubuntu. Poskytuje tipy pro řešení problémů a osvědčené postupy pro efektivní správu uživatelů.

7.1 Je bezpečné editovat /etc/passwd přímo?

Odpověď:

Přímé editování není doporučeno. Soubor /etc/passwd je kritický systémový soubor a nesprávné úpravy mohou zabránit uživatelům v přihlášení.

Doporučené metody:

Používejte příkazy jako usermod nebo vipw pro bezpečné editování.

Příkaz pro bezpečné editování:
sudo vipw

Tento příkaz uzamkne soubor, aby se zabránilo souběžným úpravám, což zajišťuje bezpečné změny.

7.2 Jaký je rozdíl mezi příkazy who a users?

Odpověď:

Command

Popis

who

Zobrazí podrobnosti o přihlášených uživatelích, včetně času přihlášení a terminálu.

users

Zobrazuje pouze uživatelská jména aktuálně přihlášených uživatelů v jednoduchém seznamu.

Příklad použití:

who

Příklad výstupu:

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

Příklad výstupu:

user1 user2

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

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

Odpověď:

Použijte příkaz last k kontrole historie přihlášení.

Příklad příkazu:
last user1
Příklad výstupu:
user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user1    tty1                          Mon Feb 10 09:30 - 10:00  (00:30)

To pomáhá sledovat aktivity přihlášení, včetně vzdálených připojení.

7.4 Jak mohu změnit heslo uživatele?

Odpověď:

Administrátoři mohou změnit heslo uživatele pomocí příkazu passwd.

Příklad příkazu:
sudo passwd user1
Příklad výstupu:
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

Uživatel musí použít nové heslo při příštím přihlášení.

7.5 Mohu dočasně deaktivovat účet uživatele?

Odpověď:

Ano, můžete dočasně zamknout účet pomocí usermod.

Zamknutí účtu:
sudo usermod -L user1

Uživatel se nebude moci přihlásit, dokud nebude odemčen.

Odemknutí účtu:
sudo usermod -U user1

7.6 Jak přidám uživatele do skupiny sudo?

Odpověď:

Použijte příkaz usermod k udělení privilegií sudo.

Příklad příkazu:
sudo usermod -aG sudo user1

Po spuštění tohoto příkazu může user1 spouštět příkazy s sudo.

7.7 Jak mohu přesunout domovský adresář uživatele?

Odpověď:

Použijte usermod -d k nastavení nového domovského adresáře.

Příklad příkazu:
sudo usermod -d /new/home/path -m user1

7.8 Jak úplně odstraním uživatele a jeho data?

Odpověď:

Použijte deluser nebo userdel k odstranění uživatele.

Příklad příkazu:
sudo deluser --remove-home user1

Alternativně:

sudo userdel -r user1

To odstraní jak uživatelský účet, tak domovský adresář.

7.9 Jak mohu zkontrolovat aktivitu aktivních uživatelů?

Odpověď:

Použijte příkaz w k monitorování přihlášených uživatelů.

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

Tento příkaz pomáhá sledovat aktivitu uživatelů a zátěž systému.

8. Závěr

Správa uživatelů v Ubuntu je nezbytná jak pro osobní, tak pro podnikové prostředí. Pomocí příkazů a technik popsanych v tomto průvodci můžete efektivně spravovat uživatelské účty, zlepšit bezpečnost a optimalizovat správu systému.

Pravidelné monitorování aktivity uživatelů, správa oprávnění a udržování bezpečnostních nastavení aktuálních zajistí dobře udržovaný a bezpečný systém.