Operačný systém Linux ponúka príkazy na vytváranie a odstraňovanie používateľov a kontrolu, ktorí z nich sú prihlásení. V systéme však neexistuje príkaz na zoznam používateľov, či už prihlásených alebo neprihlásených.
Napriek tomu existuje niekoľko spôsobov, ako to dosiahnuť. Ak sa chcete dozvedieť, ako vytvoriť zoznam používateľov v systéme Linux, postupujte podľa nižšie uvedených krokov.
Prečo by ste si mali skontrolovať zoznam používateľov systému Linux
Existuje niekoľko dôvodov, prečo by ste mohli chcieť uviesť používateľov v systéme Linux. Je to dobrá prax, pokiaľ ide o vyhľadávanie a odstraňovanie nepoužívaných účtov. Z hľadiska bezpečnosti je to tiež dobrý spôsob, ako sa uistiť, že si používateľské účty nevytvárajú votrelci.
Toto je administratívna úloha, ktorú by ste pravdepodobne mali robiť aspoň raz za mesiac. Ak prevádzkujete firemný server Linux, možno to budete chcieť robiť častejšie.
Používatelia uvedení v /etc/passwd
Všetky používateľské účty vášho servera Linux majú položky v súbore /etc/passwd . Každý riadok predstavuje používateľa a má sedem polí oddelených dvojbodkami. Polia poskytujú informácie o používateľovi.
- Používateľské meno.
- Šifrované heslo ( x označuje, že heslo je skutočne v /etc/shadow )
- ID používateľa (UID).
- Identifikačné číslo skupiny používateľa (GID).
- Celé meno používateľa, ak je uvedené.
- Domovský adresár používateľa.
- Prihlasovací shell
To nás privádza k jednému spôsobu, ako uviesť zoznam všetkých používateľov v systéme Linux. Pomocou príkazu less môžete zobraziť celý súbor po jednej obrazovke.
less /etc/passwd

Ak chcete skontrolovať, či v systéme Linux existuje konkrétny používateľ, je dobré použiť príkaz grep :
less passwd | grep jeff

Ak nedostanete žiadny výstup, daný používateľ na serveri Linux neexistuje.
Napriek tomu je to veľa informácií. Môžete ho orezať iba na používateľské meno, napríklad pomocou príkazov awk alebo cut :
awk -F: '{print $1}' /etc/passwd cut -d: -f1 /etc/passwd

To býva oveľa ľahšie pochopiteľné, no stále vám umožňuje prezerať si všetky systémové používateľské účty zmiešané s vašimi ľudskými používateľmi.
Ako používať getent na zoznam používateľov
Ďalší príkaz, getent , je oveľa užitočnejší. Zobrazuje položky z ľubovoľnej databázy nakonfigurovanej v súbore /etc/nsswitch.conf vášho servera . Jednou z nich je databáza passwd . Ak chcete použiť getent na zobrazenie zoznamu všetkých používateľov systému Linux, funguje to takto:
getent passwd
Výstup vyzerá úplne rovnako ako pri použití príkazu less , ale uvádza všetkých používateľov LDAP v systéme Linux. Naše príkazy awk a cut môžu opäť pomôcť zobraziť iba prvé pole, používateľské mená.
Ak chcete skontrolovať, či konkrétny používateľ existuje v systéme Linux, getent to uľahčuje:
getent passwd jeff
Žiaden výstup tohto príkazu vám opäť nepovie, že používateľ neexistuje.
Ďalším skvelým využitím getentu je zistenie, koľko používateľských účtov existuje na serveri. To sa vykonáva pomocou prepojenia výstupu getent pomocou príkazu wc , takto:
getent passwd | wc -l

Ako vidíte, môj systém Linux má celkovo 48 účtov. Celkom zaujímavé, keďže som jediný, kto to používa, ale to len ukazuje, koľko systémových účtov je vytvorených v Linuxe.
Oddeľte používateľov systému od bežných používateľov
V očiach Linuxu nie je rozdiel medzi užívateľom systému a človekom. Kedykoľvek nainštalujete operačný systém, vytvorí sa počet používateľov systému. Ostatní používatelia systému sa vytvoria pre rôzne balíky, ako je softvér webových alebo poštových služieb.
Ako teda môžete uviesť iba bežných ľudských používateľov v systéme Linux? Kľúčom je pochopiť, že keď vytvoríte bežného používateľa, jeho UID sa pridelí v určitom rozsahu čísel. Kontrolou súboru /etc/login.defs môžeme určiť rozsah hodnôt UID dostupných pre bežné používateľské účty.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs

Na základe výstupu viem, že normálni používatelia by mali mať UID medzi 1000 a 60000. Z toho môžem zostaviť dotaz getent , ktorý zobrazí iba bežných používateľov.
getent passwd {1000..60000}

Majte na pamäti, že getent bude visieť aj po zobrazení výstupu. Proces môžete ukončiť stlačením Ctrl-C alebo počkať, kým sa neskončí. Dokončenie prehľadávania databázy passwd zvyčajne trvá menej ako 15 sekúnd .
Všeobecnejšia verzia tohto príkazu berie do úvahy rôzne hodnoty UID_MIN a UID_MAX , ktoré môžu rôzne servery používať.
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)}
V tomto príkaze využívame schopnosť Linuxu robiť viacero vecí naraz. Príkazy awk získajú hodnoty UID_MIN a UID_MAX a potom ich použijú v príkaze getent .
Teraz povedzme, že všetko, čo chceme, sú používateľské mená. Opäť prevedieme výstup cez príkaz cut takto:
eval getent passwd {$(awk '/^UID_MIN/ {print $2}' /etc/login.defs)..$(awk '/^UID_MAX/ {print $2}' /etc/login.defs)} | cut -d: -f1

Dokončenie tohto príkazu môže trvať 10 až 15 sekúnd, takže buďte trpezliví.
Efektívna správa používateľov systému Linux
Je dôležité sledovať, aké používateľské účty existujú vo vašom systéme Linux. Keď viete, že zamestnanec odišiel, požiadajte ho o vymazanie jeho používateľského účtu. Pravidelné uvádzanie používateľov systému Linux vám pomôže uistiť sa, že zachytíte všetky účty, ktoré by mohli uviaznuť.
Zároveň sa uistite, že dodržiavate zásady zabezpečenia hesiel a povzbudzujte svojich používateľov, aby si heslá pravidelne menili.