Gdje se i kako čuvaju lozinke na Linuxu?

Where How Are Passwords Stored Linux

Korisničko ime s odgovarajućom lozinkom za određeni račun primarni je zahtjev putem kojeg korisnik može pristupiti Linux sustavu. Lozinka svih korisničkih računa spremljena je u datoteku ili bazu podataka tako da se korisnik može provjeriti tijekom pokušaja prijave u sustav. Svaki korisnik nema dovoljno vještina i znanja za lociranje ove datoteke u svom sustavu. Međutim, ako dobijete pristup bazi podataka ili datoteci koja čuva sve lozinke korisnika za prijavu, tada možete lako pristupiti sustavu Linux. Kada korisnik unese korisničko ime i lozinku na Linux za prijavu, provjerava unesenu lozinku u odnosu na unos u različitim datotekama direktorija '/etc'.

Datoteke /etc /passwd čuvaju sve važne podatke potrebne za prijavu korisnika. Da biste to objasnili jednostavnijim riječima, datoteka /etc /passwd pohranjuje pojedinosti o korisničkom računu. Ova datoteka je obična tekstualna datoteka koja sadrži potpuni popis svih korisnika na vašem Linux sustavu. Sadrži podatke o korisničkom imenu, lozinci, UID -u (korisničkom ID -u), GID -u (grupni ID), ljusci i kućnom direktoriju. Ova bi datoteka trebala imati dopuštenja za čitanje jer se mnogi uslužni programi naredbenog retka koriste za mapiranje korisničkih ID-ova u korisničko ime. No, trebao bi imati ograničena dopuštenja za pristup pisanju samo za superuser ili root korisničke račune.



Ovaj članak će pokazati kako i gdje možete pohraniti lozinke računa korisnika sustava na distribuciji Linuxa. Sve demonstracije smo implementirali na Ubuntu 20.04 sustavu. Međutim, datoteku /etc /passwd možete pronaći na bilo kojoj distribuciji Linuxa.



Preduvjeti

Trebali biste imati root ovlasti za pokretanje administrativnih naredbi.



Osnovno razumijevanje o /etc /passwd datoteci

Datoteka /etc /passwd sadrži podatke o korisničkom računu vašeg sustava. Sva pohranjena polja odvojena su od dvotočke: znak.
Kada pokrenete sljedeću naredbu, vidjet ćete svaki unos datoteke /etc /passwd datoteke:

$mačka /itd/passwd

Gornja naredba će navesti sve korisnike vašeg Linux sustava.
Sljedeća vrsta formata prikazat će se na ekranu vašeg terminala:

Pojedinosti o /etc /passwd poljima Format
Sa gornje slike:

Korisničko ime: Prvo polje predstavlja ime korisnika. Duljina polja za korisničko ime definirana je između 1-32 znaka. To se koristi kada se korisnik prijavi u sustav. U gornjem primjeru 'khuzdar' je korisničko ime.
Lozinka: U gornjem primjeru znak x pokazuje da je lozinka pohranjena u šifriranom obliku u /etc /shadow datoteci.
Korisnički ID (UID): Korisnički ID mora biti zasebno dodijeljen svakom korisniku. UID nula dodjeljuje se root korisniku, a korisnički ID-ovi od 1-99 dodjeljuju se unaprijed definiranim ili standardnim računima. Daljnji UID-ovi od 100-999 dodijeljeni su administrativnim računima ili grupama sustava. Na gornjoj snimci zaslona korisnički ID je 1001.
ID grupe (GID): Sljedeće polje predstavlja ID grupe. GID se pohranjuje u /etc /group datoteku. Na temelju gornjeg primjera, korisnik pripada grupi ID 1001.
Podaci o korisničkom ID -u: Sljedeće polje namijenjeno je komentarima. U ovo polje možete dodati neke dodatne informacije o navedenom korisniku, poput punog imena, telefonskog broja itd. Međutim, u gornjem primjeru korisnik ne navodi telefonski broj.
Kućni imenik: Ovo polje prikazuje lokaciju kućnog imenika koji je dodijeljen trenutnom korisniku. Ako navedeni direktorij ne postoji, tada će se prikazati /. Gornja slika prikazuje lokaciju označenog korisnika u kućnom direktoriju, a to je home/kbuzdar.
Naredba // ljuska: Zadani apsolutni put ljuske ili naredbe je /bin /bash. Ovo je poznato kao ljuska. Na primjer, sysadmin koristi ljusku nologin. Ponaša se kao zamjenska ljuska za korisničke račune sustava. Ako se ljuska nalazi na putu do /sbin /nologin i korisnik se želi prijaviti izravno u Linux sustav, ljuska /sbin /nologin će zatvoriti ili onemogućiti vezu.



Pretražite korisnika u /etc /passwd datoteci

Možete tražiti određenog korisnika s /etc /passwd datotekom, pomoću naredbe grep. Na primjer, želimo pretraživati ​​korisničko ime 'kbuzdar' iz datoteke /etc /passwd, koristeći sljedeću sintaksu, tada možemo lako pretraživati ​​određenog korisnika, štedeći nam vrijeme:

$zahvatKorisničko ime/itd/passwd

Gornja sintaksa će se promijeniti u sljedeći oblik:

$zahvatškripav/itd/passwd


Ili

$zahvat -u '^kbuzdar' /itd/passwd

Dopuštenja za prikaz u /etc /passwd datoteci

Kao što smo gore spomenuli, svi drugi korisnici, osim korijena, trebali bi moći čitati dopuštenje u /etc /passwd datoteci i da vlasnik mora biti superkorisnik ili root.
Upišite sljedeće da biste provjerili dopuštenja za čitanje u datoteci:

$ls - /itd/passwd

Sljedeći uzorak izlaza bit će prikazan na terminalu:

Čitanje /etc /passwd datoteke

Možete pročitati /etc /passwd datoteku na vašem Linux sustavu pomoću sljedeće bash skripte ili izravno pokrenuti dolje napisano dok naredbe petlje na terminalu.
Napravite tekstualnu datoteku i zalijepite sljedeći kod u nju:

#!/bin/bash
# ukupno sedam polja iz /etc /passwd pohranjenih kao $ f1, f2 ..., $ f7

dok IFS=:čitati -rf1 f2 f3 f4 f5 f6 f7
čini
izbaciti 'Korisnik$ f1koristitif7 USDljuska i sprema datoteke uf6 USDimenik.'
učinjeno < /itd/passwd

Korištenjem while petlje čitat će svih sedam polja, a zatim iterativno prikazati sadržaj datoteke na terminalu.
Spremite gornju datoteku s imenom ‘readfile.sh’.

Sada pokrenite gornju datoteku pomoću sljedeće naredbe:

$bashreadfile.sh

Istražite /etc /shadow datoteku

Datoteka /etc /shadow sadrži sve vaše šifrirane lozinke pohranjene u ovoj datoteci koje su čitljive samo za root korisnike.
Pokrenimo sljedeću naredbu za prikaz sadržaja:

$sudo mačka /itd/sjena

Možete vidjeti svu lozinku u šifriranom formatu:

Zaključak

Iz gornjeg članka vidjeli smo sve pojedinosti korisničkog računa i lozinke pohranjene u /etc /passwd datoteci u Linux sustavu. Možete čitati ovu datoteku, ali samo korisnici root imaju dozvolu za pisanje. Štoviše, vidjeli smo i sve šifrirane lozinke pohranjene u /etc /shadow datoteci. Također možete istražiti /etc /group datoteku da biste dobili detalje o korisničkoj grupi.