De /etc/passwd-bestanden bevatten alle belangrijke informatie die nodig is voor gebruikersaanmelding. Om het in eenvoudiger bewoordingen uit te leggen, slaat het /etc/passwd-bestand de accountgegevens van de gebruiker op. Dit bestand is een tekstbestand met een volledige lijst van alle gebruikers op uw Linux-systeem Linux. Het heeft de informatie over gebruikersnaam, wachtwoord, UID (gebruikers-ID), GID (groeps-ID), shell en homedirectory. Dit bestand moet leesrechten hebben, aangezien er veel hulpprogramma's voor de opdrachtregel worden gebruikt om de gebruikers-ID's toe te wijzen aan de gebruikersnaam. Maar zou beperkte schrijftoegangsrechten moeten hebben, alleen voor superuser- of root-gebruikersaccounts.
Dit artikel laat zien hoe en waar u de accountwachtwoorden van systeemgebruikers kunt opslaan op Linux-distributie. We hebben alle demonstraties geïmplementeerd op Ubuntu 20 implemented.04 systeem. U kunt het /etc/passwd-bestand echter op elke Linux-distributie vinden.
Vereisten
U moet rootrechten hebben om beheerdersopdrachten uit te voeren.
Basisbegrip over /etc/passwd-bestand
Het /etc/passwd-bestand bevat de informatie over de gebruikersaccount van uw systeem. Alle opgeslagen velden zijn gescheiden van de dubbele punt ":" teken.
Wanneer u de volgende opdracht uitvoert, ziet u elke bestandsinvoer van het /etc/passwd-bestand:
De bovenstaande opdracht geeft een lijst van alle gebruikers van uw Linux-systeem.
Het volgende type formaat wordt weergegeven op uw terminalscherm:
Details over /etc/passwd velden Formaat
Van de bovenstaande afbeelding:
Gebruikersnaam: Veld één staat voor de naam van de gebruiker. De lengte van het gebruikersnaamveld is gedefinieerd tussen 1-32 tekens. Dit wordt gebruikt wanneer een gebruiker inlogt op het systeem. In het bovenstaande voorbeeld is 'khuzdar' de gebruikersnaam.
Wachtwoord: In het bovenstaande voorbeeld geeft het "x"-teken aan dat het wachtwoord in gecodeerde vorm is opgeslagen in het /etc/shadow-bestand.
Gebruikers-ID (UID): Gebruikers-ID moet afzonderlijk worden toegewezen aan elke gebruiker. De UID-nul wordt toegewezen aan de rootgebruiker en gebruikers-ID's van 1-99 worden toegewezen aan vooraf gedefinieerde of standaardaccounts. De verdere UID's van 100-999 worden toegewezen aan systeembeheerdersaccounts of -groepen. In de bovenstaande schermafbeelding is de gebruikers-ID 1001.
Groeps-ID (GID): Het volgende veld staat voor de groeps-ID. De GID wordt opgeslagen in /etc/group bestand. Op basis van het bovenstaande voorbeeld behoort de gebruiker tot de groeps-ID 1001.
Informatie over gebruikers-ID: Het volgende veld is bedoeld voor opmerkingen. In dit veld kunt u aanvullende informatie over de opgegeven gebruiker toevoegen, zoals de volledige naam van de gebruiker, telefoonnummer, enz. In het bovenstaande voorbeeld wordt echter geen telefoonnummer verstrekt door de gebruiker.
Thuismap: Dit veld toont de locatie van de homedirectory die is toegewezen aan de huidige gebruiker. Als de opgegeven map niet bestaat, wordt "/" weergegeven. De bovenstaande afbeelding toont de locatie van de gemarkeerde gebruiker in de homedirectory, namelijk home/kbuzdar.
Commando//shell: Het standaard absolute pad van een shell of commando is /bin/bash. Dit staat bekend als de schaal. Sysadmin gebruikt bijvoorbeeld de nologin-shell. Het gedraagt zich als de vervangende shell voor de systeemgebruikersaccounts. Als de shell zich op het pad naar /sbin/nologin bevindt en de gebruiker wil direct inloggen op het Linux-systeem, zal de /sbin/nologin-shell de verbinding sluiten of uitschakelen.
Zoek gebruiker in /etc/passwd bestand
U kunt naar een specifieke gebruiker zoeken met /etc/passwd-bestand, met behulp van het grep-commando. We willen bijvoorbeeld de gebruikersnaam 'kbuzdar' zoeken in het /etc/passwd-bestand, met behulp van de volgende syntaxis, dan kunnen we eenvoudig een gespecificeerde gebruiker zoeken, waardoor we tijd besparen:
$ grep gebruikersnaam /etc/passwdDe bovenstaande syntaxis verandert in de volgende vorm:
$ grep kbuzdar /etc/passwd
Of
Toon machtigingen op /etc/passwd bestand
Zoals we hierboven vermeldden, zouden alle andere gebruikers, behalve root, toestemming moeten kunnen lezen voor het /etc/passwd-bestand, en dat de eigenaar superuser of root moet zijn.
Typ het volgende om de leesrechten voor het bestand te controleren:
Het volgende uitvoervoorbeeld wordt weergegeven op de terminal:
/etc/passwd-bestand lezen
Je kunt het /etc/passwd-bestand op je Linux-systeem lezen door het volgende bash-script te gebruiken of direct uitvoeren wat hieronder is geschreven terwijl loop-commando's op de terminal.
Maak een tekstbestand en plak de volgende code erin:
# totaal zeven velden uit /etc/passwd opgeslagen als $f1,f2… ,$f7
terwijl IFS=: lees -r f1 f2 f3 f4 f5 f6 f7
Doen
echo "Gebruiker $f1 gebruikt $f7 shell en slaat bestanden op in $f6 directory."
gedaan < /etc/passwd
Met behulp van de while-lus leest het alle zeven velden en geeft het vervolgens iteratief de bestandsinhoud weer op de terminal.
Sla het bovenstaande bestand op met de naam 'readfile'.sh'.
Voer nu het bovenstaande bestand uit met behulp van de volgende opdracht:
$ bash leesbestand.sh
Verken /etc/shadow bestand
Het bestand /etc/shadow bevat al je gecodeerde wachtwoorden die in dit bestand zijn opgeslagen en die alleen leesbaar zijn voor rootgebruikers.
Laten we de volgende opdracht uitvoeren om de inhoud weer te geven:
U kunt al het wachtwoord in het gecodeerde formaat zien:
Conclusie
We hebben uit het bovenstaande artikel gezien dat alle accountgegevens en wachtwoorden van de gebruiker zijn opgeslagen in het /etc/passwd-bestand in het Linux-systeem. U kunt dit bestand lezen, maar alleen rootgebruikers hebben de "schrijfrechten". Bovendien hebben we ook alle versleutelde wachtwoorden gezien die zijn opgeslagen in het /etc/shadow-bestand. U kunt ook het /etc/group-bestand verkennen om details over de gebruikersgroep te krijgen.