säkerhet

Var och hur lagras lösenord på Linux?

Var och hur lagras lösenord på Linux?
Användarnamnet med motsvarande lösenord för ett specifikt konto är det primära kravet genom vilket en användare kan komma åt ett Linux-system. Alla användares kontolösenord sparas i en fil eller en databas så att en användare kan verifieras under inloggningsförsöket till systemet. Varje användare har inte tillräckligt med färdigheter och expertis för att hitta den här filen i sitt system. Men om du får tillgång till databasen eller en fil som behåller alla inloggningsanvändares lösenord kan du enkelt komma åt Linux-systemet. När en användare anger ett användarnamn och lösenord på Linux för inloggning kontrollerar det det angivna lösenordet mot en post i olika filer i katalogen '/ etc'.

/ Etc / passwd-filerna behåller all viktig information som är nödvändig för användarinloggning. För att förklara det med enklare ord lagrar / etc / passwd-filen användarens kontouppgifter. Den här filen är en vanlig textfil som innehåller en fullständig lista över alla användare på ditt Linux-system. Den har information om användarnamn, lösenord, UID (användar-id), GID (grupp-id), skal och hemkatalog. Den här filen bör ha läsbehörigheter eftersom många kommandoradsverktyg används för att mappa användar-ID: n till användarnamnet. Men borde ha begränsad skrivbehörighet endast för superanvändare eller root-användarkonton.

Den här artikeln kommer att visa hur och var du kan lagra systemanvändarnas kontolösenord vid Linux-distribution. Vi har implementerat alla demonstrationer på Ubuntu 20.04-systemet. Du kan dock hitta / etc / passwd-fil i vilken Linux-distribution som helst.

Förutsättningar

Du bör ha root-behörigheter för att köra administrativa kommandon.

Grundläggande förståelse för / etc / passwd File

/ Etc / passwd-filen innehåller information om ditt användarkonto. Alla lagrade fält är separerade från kolon ":" -tecknet.
När du kör följande kommando ser du varje filinmatning i / etc / passwd-fil:

$ cat / etc / passwd

Ovanstående kommando listar alla användare av ditt Linux-system.
Följande typ av format visas på terminalskärmen:

Detaljer om / etc / passwd fält Format
Från bilden ovan:

Användarnamn: Fält ett representerar användarens namn. Längden på fältet för användarnamn definieras mellan 1-32 tecken. Detta används när en användare loggar in på systemet. I exemplet ovan är 'khuzdar' användarnamnet.
Lösenord: I exemplet ovan visar “x” -tecknet att lösenordet lagras i krypterad form i / etc / shadow-filen.
Användar-ID (UID): Användar-ID måste tilldelas separat till varje användare. UID-noll tilldelas rotanvändaren och användar-ID från 1-99 tilldelas fördefinierade eller vanliga konton. Ytterligare UID: er från 100-999 tilldelas systemadministrativa konton eller grupper. I ovanstående skärmdump är användar-ID: t 1001.
Grupp-ID (GID): Nästa fält representerar grupp-ID. GID lagras i / etc / gruppfil. Baserat på ovanstående exempel tillhör användaren grupp-id 1001.
Information om användar-ID: Följande fält är avsett för kommentarer. I det här fältet kan du lägga till ytterligare information om den angivna användaren, till exempel användarens fullständiga namn, telefonnummer etc. I exemplet ovan tillhandahålls dock inget telefonnummer av användaren.
Hemkatalog: Det här fältet visar platsen för den hemkatalog som tilldelats den aktuella användaren. Om den angivna katalogen inte finns kommer den att visa “/”. Ovanstående bild visar platsen för den markerade användaren i hemkatalogen, som är hem / kbuzdar.
Kommando // skal: Den absoluta standardvägen för ett skal eller kommando är / bin / bash. Detta kallas skalet. Till exempel sysadmin med hjälp av nologin-skalet. Det fungerar som ett ersättningsskal för systemanvändarkontona. Om skalet ligger vid sökvägen till / sbin / nologin och användaren vill logga in direkt på Linux-systemet kommer / sbin / nologin-skalet att stänga eller inaktivera anslutningen.

Sök användare i / etc / passwd-fil

Du kan söka efter en specifik användare med / etc / passwd-fil med kommandot grep. Vi vill till exempel söka i användarnamnet 'kbuzdar' från filen / etc / passwd med hjälp av följande syntax, så kan vi enkelt söka i en viss användare och spara vår tid:

$ grep användarnamn / etc / passwd

Ovanstående syntax ändras till följande form:

$ grep kbuzdar / etc / passwd


Eller

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

Visa behörigheter för / etc / passwd-fil

Som vi nämnde ovan bör alla andra användare, utom root, kunna läsa behörighet för filen / etc / passwd och att ägaren måste vara superanvändare eller root.
Skriv följande för att kontrollera läsbehörigheterna i filen:

$ ls -l / etc / passwd

Följande utgångsprov visas på terminalen:

Läser / etc / passwd-fil

Du kan läsa / etc / passwd-filen på ditt Linux-system med hjälp av följande bash-skript eller direkt köra det som skrivs nedan medan loop-kommandon på terminalen.
Skapa en textfil och klistra in följande kod i den:

#!/ bin / bash
# totalt sju fält från / etc / passwd lagrade som $ f1, f2 ..., $ f7
medan IFS =: läs -r f1 f2 f3 f4 f5 f6 f7
do
echo "Användare $ f1 använder $ f7-skal och lagrar filer i $ f6-katalogen."
Gjort < /etc/passwd

Med hjälp av while-slingan läser den alla sju fälten och visar sedan iterativt filinnehållet på terminalen.
Spara ovanstående fil med namnet 'readfile'.sh '.

Kör nu filen ovan med hjälp av följande kommando:

$ bash-läsfil.sh

Utforska / etc / skuggfil

/ Etc / skuggfilen innehåller alla dina krypterade lösenord som lagras i den här filen som endast är läsbara för rotanvändare.
Låt oss köra följande kommando för att visa innehållet:

$ sudo cat / etc / shadow

Du kan se alla lösenord i krypterat format:

Slutsats

Från ovanstående artikel har vi sett alla användarens kontouppgifter och lösenord lagrade på / etc / passwd-filen i Linux-systemet. Du kan läsa den här filen, men endast rotanvändare har "skrivbehörighet". Dessutom har vi också sett alla krypterade lösenord lagrade i / etc / shadow-filen. Du kan också utforska / etc / gruppfil för att få information om användarens grupp.

Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...
OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...