Hvor og hvordan lagres passord på Linux?

Where How Are Passwords Stored Linux



Brukernavnet med et tilsvarende passord for en bestemt konto er det viktigste kravet som en bruker kan få tilgang til et Linux -system. Alle brukerens kontopassord lagres i en fil eller en database, slik at en bruker kan bekreftes under påloggingsforsøket til systemet. Hver bruker har ikke nok ferdigheter og ekspertise til å finne denne filen på systemet. Men hvis du får tilgang til databasen eller en fil som beholder alle påloggingsbrukerens passord, kan du enkelt få tilgang til Linux -systemet. Når en bruker skriver inn et brukernavn og passord på Linux for pålogging, kontrollerer det det angitte passordet mot en oppføring i forskjellige filer i ‘/etc’ -katalogen.

Filene /etc /passwd beholder all viktig informasjon som er nødvendig for brukerpålogging. For å forklare det med enklere ord, lagrer /etc /passwd -filen brukerens kontodetaljer. Denne filen er en ren tekstfil som inneholder en komplett liste over alle brukerne på Linux -systemet ditt. Den har informasjon om brukernavn, passord, UID (bruker -ID), GID (gruppe -ID), shell og hjemmekatalog. Denne filen skal ha lesetillatelser ettersom mange kommandolinjeverktøy brukes til å tilordne bruker-ID-ene til brukernavnet. Men bør bare ha begrensede skrivetilgangstillatelser for superbruker- eller rotbrukerkontoer.







Denne artikkelen vil demonstrere hvordan og hvor du kan lagre systembrukerens kontopassord på Linux -distribusjon. Vi har implementert alle demonstrasjoner på Ubuntu 20.04 -systemet. Du kan imidlertid finne /etc /passwd -filen på hvilken som helst Linux -distribusjon.



Forutsetninger

Du bør ha rotrettigheter for å kjøre administrative kommandoer.



Grunnleggende forståelse om /etc /passwd -fil

Filen /etc /passwd inneholder informasjonen om brukerkontoen til systemet ditt. Alle lagrede felt er atskilt fra kolon: sign.
Når du kjører følgende kommando, vil du se hver filoppføring av /etc /passwd -filen:





$katt /etc/passwd

Kommandoen ovenfor viser alle brukere av Linux -systemet ditt.
Følgende formattype vises på terminalskjermen:

Detaljer om /etc /passwd -felt Format
Fra bildet over:

Brukernavn: Felt 1 representerer brukerens navn. Lengden på brukernavn-feltet er definert mellom 1-32 tegn. Dette brukes når en bruker logger på systemet. I eksemplet ovenfor er 'khuzdar' brukernavnet.
Passord: I eksemplet ovenfor viser x -tegnet at passordet er lagret i kryptert form i /etc /shadow -filen.
Bruker -ID (UID): Bruker -ID må tilordnes hver bruker separat. UID-null er tilordnet rotbrukeren, og bruker-ID-er fra 1-99 tildeles forhåndsdefinerte eller standardkontoer. De ytterligere UID-ene fra 100-999 er tilordnet systemadministrative kontoer eller grupper. I skjermbildet ovenfor er bruker -IDen 1001.
Gruppe -ID (GID): Det neste feltet representerer gruppe -IDen. GID -en lagres i /etc /group -filen. Basert på eksemplet ovenfor tilhører brukeren gruppen ID 1001.
Informasjon om bruker -ID: Følgende felt er ment for kommentarer. I dette feltet kan du legge til litt tilleggsinformasjon om den angitte brukeren, for eksempel brukerens fulle navn, telefonnummer, etc. I eksemplet ovenfor er imidlertid ingen telefonnummer oppgitt av brukeren.
Hjemmekatalog: Dette feltet viser plasseringen til hjemmekatalogen som er tilordnet den nåværende brukeren. Hvis den angitte katalogen ikke eksisterer, vil den vise /. Bildet ovenfor viser plasseringen til den uthevede brukeren i hjemmekatalogen, som er home/kbuzdar.
Kommando // shell: Standard absolutt bane til et skall eller en kommando er /bin /bash. Dette er kjent som skallet. For eksempel, sysadmin som bruker nologin -skallet. Det fungerer som et erstatningsskall for systembrukerkontoer. Hvis skallet er plassert på banen til /sbin /nologin og brukeren ønsker å logge på direkte til Linux -systemet, vil /sbin /nologin -skallet lukke eller deaktivere tilkoblingen.



Søk bruker i /etc /passwd -fil

Du kan søke etter en bestemt bruker med /etc /passwd -filen ved hjelp av grep -kommandoen. For eksempel vil vi søke i brukernavnet ‘kbuzdar’ fra filen /etc /passwd ved å bruke følgende syntaks, så kan vi enkelt søke etter en spesifisert bruker og spare tid:

$grepbrukernavn/etc/passwd

Ovenstående syntaks endres til følgende form:

$grepknirkende/etc/passwd


Eller

$grep -i '^kbuzdar' /etc/passwd

Vis tillatelser for filen /etc /passwd

Som vi nevnte ovenfor, bør alle andre brukere, bortsett fra root, kunne lese tillatelse til filen /etc /passwd, og at eieren må være superbruker eller root.
Skriv inn følgende for å kontrollere lesetillatelsene for filen:

$ls -de /etc/passwd

Følgende utgangsprøve vises på terminalen:

Lese /etc /passwd -fil

Du kan lese /etc /passwd -filen på Linux -systemet ditt ved å bruke følgende bash -skript eller kjøre det som er skrevet nedenfor mens loop -kommandoer på terminalen.
Lag en tekstfil og lim inn følgende kode i den:

#!/bin/bash
# totalt syv felt fra /etc /passwd lagret som $ f1, f2 ..., $ f7

samtidig som IFS=:lese -rf1 f2 f3 f4 f5 f6 f7
gjøre
kastet ut 'Bruker$ f1bruk$ f7shell og lagrer filer i$ f6katalog. '
gjort < /etc/passwd

Ved å bruke mens -løkken, vil den lese alle syv feltene og deretter iterativt vise filinnholdet på terminalen.
Lagre filen ovenfor med navnet 'readfile.sh'.

Kjør nå filen ovenfor ved å bruke følgende kommando:

$bashreadfile.sh

Utforsk /etc /shadow file

Filen /etc /shadow inneholder alle dine krypterte passord som er lagret i denne filen som bare er lesbare for rotbrukere.
La oss kjøre følgende kommando for å vise innholdet:

$sudo katt /etc/skygge

Du kan se alt passordet i det krypterte formatet:

Konklusjon

Vi har sett fra artikkelen ovenfor alle brukerens kontodetaljer og passord lagret på /etc /passwd -filen i Linux -systemet. Du kan lese denne filen, men bare rotbrukere har skrivetillatelser. Videre har vi også sett alle de krypterte passordene som er lagret på /etc /shadow -filen. Du kan også utforske /etc /group -filen for å få detaljer om brukerens gruppe.