Zaujímalo by vás, ako Linux efektívne riadi prostredie pre viacerých používateľov? V tomto článku vysvetlíme, ako Linux ukladá a spravuje heslá a prihlásenia používateľov.
Skúmam súbor / etc / passwd
Keď užívateľ zadá užívateľské meno a heslo, Linux skontroluje heslo zadané oproti záznamu vo viacerých súboroch v adresári „/ etc“.
„/ Etc / passwd“ je jedným z najdôležitejších súborov, v ktorom sú uložené podrobnosti o používateľovi.
Posledná položka v tomto súbore zodpovedá používateľom „uhlíka“. Dvojbodky sú oddelené niekoľkými poliami informácií (:).
- uhlík: meno používateľa, ktorému táto položka zodpovedá. x: označuje, že pre používateľa existuje heslo. Heslo je však uložené v súbore „/ etc / shadow“. Ak namiesto x ukazuje a! symbol znamená, že heslo neexistuje.1000: ID užívateľa tohto používateľa.1000: ID skupiny skupiny, do ktorej tento používateľ patrí.carbon,,:: označenie viacerých polí informácií vrátane celého mena a telefónnych čísel. Tu neboli poskytnuté žiadne telefónne čísla./home/carbon: umiestnenie domovského adresára priradeného tomuto používateľovi./bin/bash: predvolený shell priradený tomuto používateľovi.
Vytvorme si iného používateľa, pre ktorého boli uložené nejaké telefónne čísla. Používateľ „pluto“ sa pridá do systému pomocou príkazu adduser.
Pri opätovnom pohľade na súbor „etc / passwd“ si môžeme zobraziť úplné informácie pre používateľa „pluto“. Pole, ktoré obsahuje zoznam všetkých mien a čísel oddelených čiarkami, sa nazýva „pole GECOS“.
Vždy, keď je užívateľ vytvorený, hodnoty domovského adresára a predvoleného shellu, ktoré je potrebné priradiť, sú špecifikované v súbore „/etc/adduser.conf“.
ID používateľov pre vytvorených používateľov začínajú od 1 000 a bežia až do 59999.
Užívateľ „uhlík“ bol schopný prezerať položky súboru „/ etc / passwd“ jednoducho pomocou príkazu cat. Pozrime sa na jeho povolenia.
Do súboru môže zapisovať iba užívateľ root. Ostatní používatelia môžu súbor čítať iba. Pretože tento súbor je čitateľný pre všetkých, nie je ideálne ukladať heslá tu. Namiesto toho je uložený v inom súbore s názvom „/ etc / shadow“.
Preskúmanie súboru / etc / shadow
Teraz sa pokúsime zobraziť uložené heslo pre používateľov „uhlíkových“ a „pluto“ v súbore „/ etc / shadow“.
Keď sa pozrieme na povolenia pre súbor „/ etc / shadow“, vidíme, že do súboru môže čítať a zapisovať iba používateľ root. Súbor môžu čítať iba členovia skupiny „tieň“. V skutočnosti je „tieňová“ skupina prázdna, ale pre tento súbor sa vyžaduje syntakticky.
Po prihlásení ako „root“ môžeme zobraziť posledných desať riadkov „/ etc / shadow“. Pre každý záznam v „/ etc / passwd“ je v tomto súbore zodpovedajúca položka. Formát bude nasledujúci:
pluto:$6$JvWfZ9u....:18283:0:99999:7:::
Aj v tomto súbore má každá položka viac polí oddelených dvojbodkami (:). Rozlúštime záznam pre používateľa „pluto“.
- pluto: meno používateľa, ktorému táto položka zodpovedá6$ JvWfZ9u. $ YGFIqOJ ….: Heslo užívateľa hashed uložené spolu s informáciami o použitom algoritme hashovania. Okrem toho sa na vygenerovanie hashovania hesla spolu s heslom v obyčajnom texte použije hodnota soli.
{ plaintext password, salt} -> hashed password
Spracujme obsah v tejto oblasti. Symbol $ sa používa ako oddeľovač na oddelenie troch polí.
$6 $JvWfZ9u. $yGFIqOJ....
- $6 : použitý algoritmus hashovania. Tu je zoznam potenciálnych algoritmov hashovania.
- $1 : MD5 $ 2a: Blowfish $ 2y: Eksblowfish $5 : SHA-256 $6 : SHA-512
$ JvWfZ9u. : hodnota soli. $ yGFIqOJ ….: hashed password.
Výsledná hodnota hash sa uloží ako šifrované heslo pre používateľa. Hodnota soli je jedinečná pre každého používateľa. Aj keď dvaja používatelia majú rovnaké otvorené heslo, použitím jedinečnej soli by sa vygenerovala jedinečná hodnota hash.
Nasleduje zvyšné polia v tejto položke,
- 18283: Označuje počet dní od januára 1, 1970, kedy bolo heslo naposledy zmenené0: toto pole sa používa na označenie počtu dní, po ktorých môže byť heslo zmenené. Hodnota 0 znamená, že heslo je možné kedykoľvek zmeniť.99999: toto pole označuje počet dní, po uplynutí ktorých sa musí heslo zmeniť. Hodnota 99999 označuje, že si užívateľ môže heslo uchovať tak dlho, ako je potrebné.7 : ak je nastavená doba platnosti hesla, toto pole udáva počet dní, na ktoré má používateľ upozorniť na uplynutie platnosti hesla .::: Tri ďalšie polia sú súčasťou tohto záznamu, aj keď sú tu prázdne. Prvý označuje počet dní, ktoré čakajú po uplynutí platnosti hesla, po uplynutí ktorého bude účet zablokovaný. Druhá udáva počet dní od januára 1, 1970, že účet bol zablokovaný. Tretie pole je vyhradené pre budúce použitie. Prázdne polia označujú, že platné heslo pre tohto používateľa ešte neuplynula a jeho platnosť nebude čoskoro ukončená.
Celkovo sa uvádza, že posledných sedem polí týkajúcich sa platnosti hesla obsahuje informácie o politike ochrany hesiel.
Predvolené hodnoty zodpovedajúce „Policy Aging Policy“ sú uvedené v súbore „/etc/login.defs“. Tieto hodnoty môžu byť pre používateľa zmenené pomocou príkazu change.
A čo skupinové informácie?
Informácie o používateľovi a heslá sú uložené v súboroch „/ etc / passwd“ a „/ etc / shadow“. Informácie o skupine sú uložené aj v súbore „/ etc / group“.
Vyššie uvedené sú skupiny patriace používateľom „uhlík“ a „pluto“. Keď je užívateľ vytvorený v systéme Linux, je tento užívateľ okamžite priradený ku skupine s rovnakým menom ako meno používateľa.
Členovia skupiny môžu zdieľať skupinové heslo aj pri činnostiach týkajúcich sa skupiny. Hodnota x znamená, že informácie o hesle pre túto skupinu by boli v súbore „/ etc / gshadow“.
Prístup k „/ etc / gshadow“ je však obmedzený na „root“ užívateľa.
Užívateľ root môže zobraziť položky „/ etc / gshadow“, ktoré sú podobné ako „/ etc / shadow“. Pri pohľade na položku pre skupinu „uhlík“ vidíme, že druhé pole má hodnotu !, čo znamená, že pre túto skupinu neexistuje heslo.
Dávať to všetko dokopy
Keď sa používateľ chce prihlásiť, hash zadaného hesla sa nájde pomocou hodnoty soli tohto používateľa v „/ etc / shadow“. Potom sa porovná s uloženým hashom. Ak sa hodnoty zhodujú, používateľovi je udelený prístup.
súvisiace:
Je tento článok užitočný? Áno nie