【发布时间】:2021-03-04 12:44:26
【问题描述】:
我在使用脚本添加用户时尝试使用 perl 对我的密码进行哈希处理,但是当我尝试切换到该用户时,它说密码不正确。这是我写的:
hidden=$(perl -e 'print crypt($pass, "salt"),"\n")
useradd -m -p $hidden -d /home/$user -s /bin/bash $user
在此之上,我归因于“通过”我的新密码和“用户”我的新用户名。
【问题讨论】:
-
请注意,
crypt对密码进行哈希处理,但不会对其进行加密。您无法撤消此操作,但您可以通过再次运行相同的操作并将其与之前生成的值进行比较来验证密码。 -
我很困惑。如果我只是尝试使用命令“su user”登录,然后输入我的密码,它不应该自动进行此验证吗?
-
是的,确实如此。它会自动查找存储的哈希值并使用适当的过程对密码进行哈希处理并比较这些值。如果您使用可能不是这种情况的其他实用程序,您必须自己进行验证。
-
您的 perl 命令缺少结尾单引号
'。 -
见How can I process options using Perl in -n or -p mode? [即使
-n/-p未使用,所有选项也可以使用]
标签: linux shell perl ubuntu crypt