如何根据用户名将 /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

您可以使用该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 的文本文件中。

相关内容