Kur ir kaip slaptažodžiai saugomi „Linux“?

Where How Are Passwords Stored Linux



Vartotojo vardas su atitinkamu konkrečios paskyros slaptažodžiu yra pagrindinis reikalavimas, kuriuo naudotojas gali pasiekti „Linux“ sistemą. Visų vartotojų paskyrų slaptažodis išsaugomas faile arba duomenų bazėje, kad vartotojas galėtų būti patvirtintas bandant prisijungti prie sistemos. Kiekvienas vartotojas neturi pakankamai įgūdžių ir žinių, kad galėtų rasti šį failą savo sistemoje. Tačiau jei gausite prieigą prie duomenų bazės ar failo, kuriame saugomi visi prisijungusio vartotojo slaptažodžiai, galite lengvai pasiekti „Linux“ sistemą. Kai vartotojas prisijungdamas įveda naudotojo vardą ir slaptažodį „Linux“, jis patikrina įvestą slaptažodį, palyginti su įrašu įvairiuose „/etc“ katalogo failuose.

Failuose /etc /passwd saugoma visa svarbi informacija, reikalinga vartotojo prisijungimui. Norėdami tai paaiškinti paprastesniais žodžiais, faile /etc /passwd saugoma vartotojo paskyros informacija. Šis failas yra paprasto teksto failas, kuriame yra visas visų jūsų „Linux“ sistemos vartotojų sąrašas. Jame yra informacija apie vartotojo vardą, slaptažodį, UID (vartotojo ID), GID (grupės ID), apvalkalą ir namų katalogą. Šis failas turėtų turėti skaitymo teises, nes daugelis komandinės eilutės paslaugų yra naudojamos vartotojo ID susiejimui su vartotojo vardu. Tačiau turėtų būti ribotos rašymo teisės tik super vartotojo ar šakninio vartotojo paskyroms.







Šis straipsnis parodys, kaip ir kur galite saugoti sistemos vartotojo abonemento slaptažodžius platinant „Linux“. Visas demonstracijas įgyvendinome „Ubuntu 20.04“ sistemoje. Tačiau failą /etc /passwd galite rasti bet kuriame „Linux“ platinime.



Būtinos sąlygos

Turėtumėte turėti root teises, kad paleistumėte administracines komandas.



Pagrindinis supratimas apie /etc /passwd failą

Faile /etc /passwd yra informacija apie jūsų sistemos vartotojo abonementą. Visi saugomi laukai yra atskirti nuo dvitaškio: ženklas.
Vykdydami šią komandą pamatysite kiekvieną /etc /passwd failo įrašą:





$katė /ir kt/passwd

Aukščiau pateikta komanda išvardys visus jūsų „Linux“ sistemos vartotojus.
Terminalo ekrane bus rodomas tokio tipo formatas:

Išsami informacija apie /etc /passwd laukus Formatas
Iš aukščiau esančio paveikslėlio:

Vartotojo vardas: Pirmasis laukas nurodo vartotojo vardą. Vartotojo vardo lauko ilgis yra 1–32 simboliai. Tai naudojama, kai vartotojas prisijungia prie sistemos. Pirmiau pateiktame pavyzdyje „khuzdar“ yra vartotojo vardas.
Slaptažodis: Anksčiau pateiktame pavyzdyje x simbolis rodo, kad slaptažodis saugomas užšifruota faile /etc /shadow.
Vartotojo ID (UID): Vartotojo ID turi būti priskirtas kiekvienam vartotojui atskirai. Nulinis UID priskiriamas pagrindiniam vartotojui, o vartotojo ID nuo 1 iki 99 priskiriamas iš anksto nustatytoms arba standartinėms paskyroms. Kiti 100–999 UID priskiriami sistemos administracinėms paskyroms ar grupėms. Aukščiau esančioje ekrano kopijoje vartotojo ID yra 1001.
Grupės ID (GID): Kitas laukas nurodo grupės ID. GID saugomas faile /etc /group. Remiantis aukščiau pateiktu pavyzdžiu, vartotojas priklauso grupės ID 1001.
Informacija apie „User ID“: Šis laukas skirtas komentarams. Šiame lauke galite pridėti papildomos informacijos apie nurodytą vartotoją, pvz., Vartotojo vardą, pavardę, telefono numerį ir pan. Tačiau aukščiau pateiktame pavyzdyje vartotojas nepateikia jokio telefono numerio.
Pagrindinis katalogas: Šiame lauke rodoma dabartiniam vartotojui priskirto namų katalogo vieta. Jei nurodyto katalogo nėra, jis rodys /. Aukščiau pateiktame paveikslėlyje parodyta paryškinto vartotojo vieta namų kataloge, kuris yra home/kbuzdar.
Komanda // apvalkalas: Numatytasis absoliutus apvalkalo ar komandos kelias yra /bin /bash. Tai žinoma kaip apvalkalas. Pavyzdžiui, „sysadmin“ naudojant „nologin“ apvalkalą. Jis veikia kaip pakaitinis sistemos vartotojų abonementų apvalkalas. Jei apvalkalas yra kelyje į /sbin /nologin ir vartotojas nori tiesiogiai prisijungti prie „Linux“ sistemos, /sbin /nologin apvalkalas uždarys arba išjungs ryšį.



Ieškokite vartotojo /etc /passwd faile

Galite ieškoti konkretaus vartotojo naudodami /etc /passwd failą naudodami komandą grep. Pavyzdžiui, norime ieškoti vartotojo vardo „kbuzdar“ iš failo /etc /passwd, naudodami šią sintaksę, tada galime lengvai ieškoti nurodyto vartotojo, taupydami laiką:

$sukibimasVartotojo vardas/ir kt/passwd

Aukščiau pateikta sintaksė pasikeis į tokią formą:

$sukibimasgirgždantis/ir kt/passwd


Arba

$sukibimas '^kbuzdar' /ir kt/passwd

Rodyti failo /etc /passwd leidimus

Kaip minėjome aukščiau, visi kiti vartotojai, išskyrus root, turėtų turėti galimybę skaityti failo /etc /passwd leidimą ir kad savininkas turi būti superuser arba root.
Norėdami patikrinti failo skaitymo teises, įveskite toliau nurodytą informaciją.

$ls -jie /ir kt/passwd

Terminale bus rodomas toks išvesties pavyzdys:

Skaitomas /etc /passwd failas

Galite perskaityti failą /etc /passwd savo „Linux“ sistemoje naudodami šį „bash“ scenarijų arba tiesiogiai paleisti tai, kas parašyta žemiau, kol terminale yra kilpos komandos.
Sukurkite teksto failą ir įklijuokite į jį šį kodą:

#!/bin/bash
# iš viso septyni laukai iš /etc /passwd saugomi kaip $ f1, f2 ..., $ f7

tuo tarpu IFS=:skaityti -rf1 f2 f3 f4 f5 f6 f7
daryti
išmetė 'Vartotojas$ f1naudotif7apvalkalą ir saugo failus$ f6katalogas “.
padaryta < /ir kt/passwd

Naudodama ciklą while, jis perskaitys visus septynis laukus ir pasikartojančiai parodys failo turinį terminale.
Išsaugokite aukščiau esantį failą pavadinimu „readfile.sh“.

Dabar paleiskite aukščiau pateiktą failą naudodami šią komandą:

$muštireadfile.sh

Naršykite /etc /shadow failą

Faile /etc /shadow yra visi jūsų užšifruoti slaptažodžiai, kurie saugomi šiame faile ir kuriuos gali skaityti tik root vartotojai.
Norėdami parodyti turinį, paleiskite šią komandą:

$sudo katė /ir kt/šešėlis

Visą slaptažodį galite pamatyti šifruotu formatu:

Išvada

Iš aukščiau pateikto straipsnio matėme visą vartotojo abonemento informaciją ir slaptažodžius, saugomus „Linux“ sistemos faile /etc /passwd. Galite perskaityti šį failą, tačiau tik root vartotojai turi rašymo teises. Be to, mes taip pat matėme visus užšifruotus slaptažodžius, saugomus faile /etc /shadow. Taip pat galite naršyti /etc /group failą, kad gautumėte išsamią informaciją apie vartotojo grupę.