/etc/passwd および /etc/shadow ファイルの内容をユーザー名ごとに新しいファイルにグループ化するにはどうすればよいですか?

/etc/passwd および /etc/shadow ファイルの内容をユーザー名ごとに新しいファイルにグループ化するにはどうすればよいですか?

/etc/shadow ファイルに次のような内容があるとします。

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

/etc/passwd ファイルでは次のようになります:

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

次のようにグループ化したいです:

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

上記で行ったこと:

まず、両方のファイルからコマンド ユーザー名を見つけ、それらを 1 行に連結します。また、2 行目からユーザー名を削除します (これは開始時に既に存在するため、2 回必要ありません)。

簡単なコマンドは何でしょうか?

答え1

joinユーティリティを使うこともできます

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

答え2

John The Ripperパスワード復号ツールのunshadowツールを使用できます

これを行うには、まず John をシステムにインストールする必要があります。

これを行うには、ターミナルに移動して次のコマンドを入力します。

sudo apt-get install john

Johnをインストールした後、次のようにunshadowを使用します。

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

必要なデータは、ホーム フォルダー内の pwd.txt というテキスト ファイルにあります。

関連情報