Hvor og hvordan gemmes adgangskoder på Linux?

Where How Are Passwords Stored Linux



Brugernavnet med en tilsvarende adgangskode til en bestemt konto er det primære krav, hvorigennem en bruger kan få adgang til et Linux -system. Alle brugers kontos adgangskode gemmes i en fil eller en database, så en bruger kan verificeres under loginforsøget til systemet. Hver bruger har ikke nok færdigheder og ekspertise til at lokalisere denne fil på deres system. Men hvis du får adgang til databasen eller en fil, der gemmer alle loginbrugerens adgangskoder, kan du let få adgang til Linux -systemet. Når en bruger indtaster et brugernavn og en adgangskode på Linux til login, kontrollerer den den indtastede adgangskode mod en indtastning i forskellige filer i biblioteket ‘/etc’.

Filerne /etc /passwd gemmer alle de vigtige oplysninger, der er nødvendige for brugerlogin. For at forklare det med enklere ord gemmer filen /etc /passwd brugerens kontodetaljer. Denne fil er en ren tekstfil, der indeholder en komplet liste over alle brugere på dit Linux -system. Den har oplysningerne om brugernavn, adgangskode, UID (bruger -id), GID (gruppe -id), shell og hjemmekatalog. Denne fil skal have læsetilladelser, da mange kommandolinjeværktøjer bruges til at knytte bruger-id'erne til brugernavnet. Men bør kun have begrænsede skriveadgangstilladelser til superbruger- eller rodbrugerkonti.







Denne artikel vil demonstrere, hvordan og hvor du kan gemme systembrugerens kontoadgangskoder på Linux -distribution. Vi har implementeret alle demonstrationer på Ubuntu 20.04 system. Du kan dog finde /etc /passwd -fil på enhver Linux -distribution.



Forudsætninger

Du bør have root -rettigheder til at køre administrative kommandoer.



Grundlæggende forståelse for /etc /passwd File

Filen /etc /passwd indeholder oplysningerne om dit systems brugerkonto. Alle gemte felter er adskilt fra kolon: tegn.
Når du kører følgende kommando, vil du se hver filindgang i /etc /passwd -filen:





$kat /etc/passwd

Ovenstående kommando viser alle brugere af dit Linux -system.
Følgende formattype vises på din terminalskærm:

Detaljer om /etc /passwd felter Format
Fra ovenstående billede:

Brugernavn: Felt et repræsenterer brugerens navn. Længden af ​​brugernavn feltet er defineret mellem 1-32 tegn. Dette bruges, når en bruger logger ind på systemet. I ovenstående eksempel er 'khuzdar' brugernavnet.
Adgangskode: I eksemplet ovenfor viser x -tegnet, at adgangskoden er gemt i krypteret form i /etc /shadow -filen.
Bruger -ID (UID): Bruger -id skal tildeles hver bruger separat. UID-nullen er tildelt rodbrugeren, og bruger-id'er fra 1-99 tildeles foruddefinerede eller standardkonti. De yderligere UID'er fra 100-999 tildeles systemadministrative konti eller grupper. I ovenstående skærmbillede er bruger -id'et 1001.
Gruppe -id (GID): Det næste felt repræsenterer gruppe -id'et. GID'en gemmes i /etc /group -filen. Baseret på ovenstående eksempel tilhører brugeren gruppen ID 1001.
Oplysninger om bruger -id: Følgende felt er beregnet til kommentarer. I dette felt kan du tilføje nogle yderligere oplysninger om den angivne bruger, f.eks. Brugerens fulde navn, telefonnummer osv. I ovenstående eksempel oplyser brugeren imidlertid ikke noget telefonnummer.
Hjem bibliotek: Dette felt viser placeringen af ​​hjemmekataloget, der er tildelt den aktuelle bruger. Hvis det angivne bibliotek ikke findes, viser det /. Ovenstående billede viser placeringen af ​​den fremhævede bruger i hjemmemappen, som er home/kbuzdar.
Kommando // shell: Den absolutte standardsti for en skal eller kommando er /bin /bash. Dette er kendt som skallen. For eksempel sysadmin ved hjælp af nologin -skalet. Det fungerer som erstatningsskallen til systembrugerkonti. Hvis skallen er placeret på stien til /sbin /nologin, og brugeren ønsker at logge direkte på Linux -systemet, vil /sbin /nologin -shell lukke eller deaktivere forbindelsen.



Søg bruger i /etc /passwd -fil

Du kan søge efter en bestemt bruger med /etc /passwd -fil ved hjælp af kommandoen grep. For eksempel vil vi søge efter brugernavnet 'kbuzdar' fra filen /etc /passwd ved hjælp af følgende syntaks, så kan vi let søge efter en bestemt bruger og spare vores tid:

$grebbrugernavn/etc/passwd

Ovenstående syntaks ændres til følgende form:

$grebknirkende/etc/passwd


Eller

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

Vis tilladelser til /etc /passwd -fil

Som vi nævnte ovenfor, bør alle andre brugere, undtagen root, kunne læse tilladelse til filen /etc /passwd, og at ejeren skal være superbruger eller root.
Indtast følgende for at kontrollere læsetilladelserne til filen:

$ls -det /etc/passwd

Følgende output -prøve vil blive vist på terminalen:

Læser /etc /passwd -fil

Du kan læse /etc /passwd -filen på dit Linux -system ved hjælp af følgende bash -script eller direkte køre det, der er skrevet herunder, mens loop -kommandoer på terminalen.
Opret en tekstfil og indsæt følgende kode i den:

#!/bin/bash
# i alt syv felter fra /etc /passwd gemt som $ f1, f2 ..., $ f7

mens IFS=:Læs -rf1 f2 f3 f4 f5 f6 f7
gøre
smed ud 'Bruger$f1brug$ f7shell og gemmer filer i$ f6vejviser.'
Færdig < /etc/passwd

Ved hjælp af while -løkken vil den læse alle syv felter og derefter iterativt vise filindholdet på terminalen.
Gem ovenstående fil med navnet 'readfile.sh'.

Kør nu ovenstående fil ved hjælp af følgende kommando:

$bashreadfile.sh

Udforsk /etc /shadow file

Filen /etc /shadow indeholder alle dine krypterede adgangskoder, der er gemt i denne fil, som kun kan læses for rodbrugere.
Lad os køre følgende kommando for at vise indholdet:

$sudo kat /etc/skygge

Du kan se hele adgangskoden i det krypterede format:

Konklusion

Vi har set fra ovenstående artikel alle brugerens kontooplysninger og adgangskoder gemt på /etc /passwd -filen i Linux -systemet. Du kan læse denne fil, men kun root -brugere har skrivetilladelser. Desuden har vi også set alle de krypterede adgangskoder gemt på /etc /shadow -filen. Du kan også udforske /etc /group -filen for at få oplysninger om brugerens gruppe.