Wie gruppiere ich den Inhalt der Dateien /etc/passwd und /etc/shadow nach Benutzername in einer neuen Datei?

Wie gruppiere ich den Inhalt der Dateien /etc/passwd und /etc/shadow nach Benutzername in einer neuen Datei?

Angenommen, ich habe in der Datei /etc/shadow folgenden Inhalt:

root:!!:16087::::::
ftp:!!:14796::::::

und in der Datei /etc/passwd wie folgt:

ftp:x:40:49:FTP account:/srv/ftp:/sbin/nologin
root:x:0:0:root:/root:/bin/bash

Ich möchte sie wie folgt gruppieren:

ftp:!!:14796::::::x:40:49:FTP account:/srv/ftp:/sbin/nologin
root:!!:16087:::::::x:0:0:root:/root:/bin/bash

Was ich oben gemacht habe:

Ich habe zuerst den Befehlsbenutzernamen aus beiden Dateien gesucht und sie dann zu einer einzigen Zeile verknüpft. Außerdem lösche ich den Benutzernamen aus der zweiten Zeile (da dieser bereits beim Start vorhanden ist, wird er nicht zweimal benötigt).

Wie lautet der einfache Befehl?

Antwort1

Sie können das joinDienstprogramm verwenden

sudo bash -c 'join -t: <(sort -t: -k1,1 /etc/shadow) <(sort -t: -k1,1 /etc/passwd)'

Antwort2

Sie können das Unshadow-Tool im John The Ripper-Passwort-Entschlüsselungstool verwenden

Dazu müssen Sie zuerst John auf Ihrem System installieren.

Gehen Sie dazu zu Ihrem Terminal und geben Sie den folgenden Befehl ein.

sudo apt-get install john

Nach der Installation von John verwenden Sie unshadow wie folgt:

sudo unshadow /etc/passwd /etc/shadow > $HOME/pwd.txt

Die benötigten Daten befinden sich in einer Textdatei namens pwd.txt in Ihrem Home-Ordner.

verwandte Informationen