复制用户,或至少复制密码

Sch*_*ibe 3 users

我有一些应用程序需要创建与其他用户具有相同密码的用户。有没有办法做到这一点而不必手动编辑 /etc/shadow ?某种命令?

Gil*_*il' 5

在 Linux 上,您可以使用shadow 实用程序套件中的useraddorusermod命令来执行此操作,因为它们接受密码哈希作为选项。您需要/etc/shadow手动提取其他用户的密码哈希。

h=$(</etc/shadow awk -vuser="old_user_name" -F: '$1==user {print $2}')
useradd -p "$h" new_user_name
Run Code Online (Sandbox Code Playgroud)

请注意,如果有人获得了影子文件,他们会立即知道这两个用户具有相同的密码,因为这两个散列将使用相同的盐。没有办法解决这个问题,而不必输入实际密码(如果不/etc/shadow使用蛮力就无法恢复)。

请注意,在大多数 Linux 安装中,所有用户都可以看到正在运行的进程的命令行。因此,如果机器上还有其他用户,他们可能能够看到密码哈希(这为他们提供了一些可以尝试离线暴力破解的东西)。这可以通过使用诸如 SELinux 之类的框架来解决,这些框架对其他用户隐藏了进程命令行。