Kde a ako sú heslá uložené v systéme Linux?

Where How Are Passwords Stored Linux



Používateľské meno so zodpovedajúcim heslom pre konkrétny účet je primárnou požiadavkou, pomocou ktorej môže používateľ pristupovať k systému Linux. Heslo všetkých používateľských účtov je uložené v súbore alebo databáze, aby bolo možné používateľa overiť pri pokuse o prihlásenie do systému. Každý používateľ nemá dostatočné schopnosti a znalosti na nájdenie tohto súboru vo svojom systéme. Ak však získate prístup k databáze alebo k súboru, ktorý uchováva všetky heslá prihláseného používateľa, potom máte ľahký prístup k systému Linux. Keď používateľ zadá na prihlásenie používateľské meno a heslo v systéme Linux, skontroluje zadané heslo oproti záznamu v rôznych súboroch adresára „/etc“.

Súbory /etc /passwd uchovávajú všetky dôležité informácie potrebné na prihlásenie používateľa. Aby to bolo jednoduchšie vysvetlené, súbor /etc /passwd obsahuje podrobnosti o účte používateľa. Tento súbor je textový súbor, ktorý obsahuje úplný zoznam všetkých používateľov vášho systému Linux. Obsahuje informácie o používateľskom mene, hesle, UID (ID používateľa), GID (ID skupiny), shelle a domovskom adresári. Tento súbor by mal mať povolenia na čítanie, pretože mnoho pomocných programov príkazového riadka sa používa na mapovanie ID užívateľov k používateľskému menu. Malo by však mať obmedzené prístupové práva na zápis iba pre používateľské účty superužívateľov alebo root.







Tento článok ukáže, ako a kde môžete ukladať heslá používateľských účtov systému v distribúcii Linux. Všetky ukážky sme implementovali do systému Ubuntu 20.04. Súbor /etc /passwd však môžete nájsť v akejkoľvek distribúcii Linuxu.



Predpoklady

Na spúšťanie správcovských príkazov by ste mali mať oprávnenia root.



Základné informácie o súbore /etc /passwd

Súbor /etc /passwd obsahuje informácie o používateľskom účte vášho systému. Všetky uložené polia sú oddelené od dvojbodky: znamienka.
Keď spustíte nasledujúci príkaz, uvidíte každú položku súboru /etc /passwd:





$kat /atď/passwd

Vyššie uvedený príkaz zobrazí zoznam všetkých používateľov vášho systému Linux.
Na obrazovke terminálu sa zobrazí nasledujúci typ formátu:

Podrobnosti o /etc /passwd poliach Formát
Z vyššie uvedeného obrázku:

Používateľské meno: Prvé pole predstavuje meno používateľa. Dĺžka poľa používateľského mena je definovaná medzi 1-32 znakmi. Používa sa, keď sa používateľ prihlási do systému. V uvedenom príklade je používateľské meno „khuzdar“.
Heslo: Vo vyššie uvedenom príklade znak x ukazuje, že heslo je uložené v šifrovanej forme v súbore /etc /shadow.
ID užívateľa (UID): Každému používateľovi musí byť priradené ID používateľa. Nulová hodnota UID je priradená užívateľovi root a ID užívateľov od 1 do 99 sú priradené preddefinovaným alebo štandardným účtom. Ďalších UID od 100 do 999 je priradených k systémovým administratívnym účtom alebo skupinám. Na vyššie uvedenej snímke obrazovky je ID používateľa 1001.
ID skupiny (GID): Nasledujúce pole predstavuje ID skupiny. GID je uložený v súbore /etc /group. Na základe vyššie uvedeného príkladu používateľ patrí do skupiny id 1001.
Informácie o ID užívateľa: Nasledujúce pole je určené na komentovanie. Do tohto poľa môžete pridať ďalšie informácie o zadanom používateľovi, ako napríklad jeho úplné meno, telefónne číslo atď. V uvedenom príklade však používateľ neposkytuje žiadne telefónne číslo.
Domovský adresár: Toto pole zobrazuje umiestnenie domovského adresára, ktorý je priradený aktuálnemu používateľovi. Ak zadaný adresár neexistuje, zobrazí sa /. Vyššie uvedený obrázok ukazuje umiestnenie zvýrazneného používateľa v domovskom adresári, ktorým je home/kbuzdar.
Príkaz // shell: Predvolená absolútna cesta k shellu alebo príkazu je /bin /bash. Toto je známe ako škrupina. Napríklad sysadmin pomocou shellu nologin. Chová sa ako náhradný shell pre systémové používateľské účty. Ak sa shell nachádza na ceste k /sbin /nologin a používateľ sa chce prihlásiť priamo do systému Linux, shell /sbin /nologin zatvorí alebo deaktivuje pripojenie.



Vyhľadajte používateľa v súbore /etc /passwd

Konkrétneho používateľa môžete vyhľadať pomocou súboru /etc /passwd pomocou príkazu grep. Chceme napríklad vyhľadať používateľské meno „kbuzdar“ zo súboru /etc /passwd pomocou nasledujúcej syntaxe, aby sme potom mohli ľahko vyhľadať zadaného používateľa a ušetriť tak čas:

$uchopenieužívateľské meno/atď/passwd

Vyššie uvedená syntax sa zmení na nasledujúci tvar:

$uchopeniepiskľavý/atď/passwd


Alebo

$uchopenie -v '^kbuzdar' /atď/passwd

Zobrazenie povolení v súbore /etc /passwd

Ako sme uviedli vyššie, všetci ostatní používatelia, okrem root, by mali mať možnosť čítať povolenie v súbore /etc /passwd a vlastník musí byť superužívateľ alebo root.
Ak chcete skontrolovať povolenia na čítanie v súbore, zadajte nasledujúci príkaz:

$ls -ten /atď/passwd

Na termináli sa zobrazí nasledujúca výstupná ukážka:

Čítanie súboru /etc /passwd

Súbor /etc /passwd si môžete vo svojom systéme Linux prečítať pomocou nasledujúceho skriptu bash alebo priamo spustiť príkaz, ktorý je napísaný nižšie, pomocou príkazov slučky na termináli.
Vytvorte textový súbor a vložte doň nasledujúci kód:

#!/bin/bash
# celkom sedem polí z /etc /passwd uložených ako $ f1, f2 ..., $ f7

kým IFS=:čítať -rf1 f2 f3 f4 f5 f6 f7
urobiť
zahodil „Používateľ$ f1používaťf7 dolárovshell a ukladá súbory dof6 dolárovadresár. '
hotový < /atď/passwd

Pomocou cyklu while načíta všetkých sedem polí a potom iteratívne zobrazí obsah súboru na termináli.
Uložte vyššie uvedený súbor s názvom „readfile.sh“.

Teraz spustite vyššie uvedený súbor pomocou nasledujúceho príkazu:

$bashreadfile.sh

Preskúmajte súbor /etc /shadow

Súbor /etc /shadow obsahuje všetky vaše zašifrované heslá uložené v tomto súbore, ktoré sú čitateľné iba pre používateľov root.
Na zobrazenie obsahu spustíme nasledujúci príkaz:

$sudo kat /atď/tieň

Celé heslo môžete vidieť v šifrovanom formáte:

Záver

Z vyššie uvedeného článku sme videli všetky podrobnosti o používateľskom účte a heslá uložené v súbore /etc /passwd v systéme Linux. Tento súbor môžete čítať, ale oprávnenia na zápis majú iba používatelia root. Okrem toho sme tiež videli všetky šifrované heslá uložené v súbore /etc /shadow. Môžete tiež preskúmať súbor /etc /group a získať podrobnosti o skupine používateľov.