我想在Perl中使用crypt哈希函数来哈希密码。在bash脚本到目前为止我有:密码哈希不能用单引号
password='Pa$$word'
hashedPassword="$(perl -e "print crypt('$password', 'salt'), \"\n"")"
我然后使用SED修改/复制/ etc/shadow文件:
sed -e '/^user1:/s_:[^:]*:_:'"$hashedPassword"':_' /etc/shadow > /tmp/shadow
方法的工作原理,将含有单引号的字符串时除外。我如何处理包含“单引号”的密码?运行Solaris 10操作系统。
你是怎么调用'sed'的?这个命令中的单引号不应该是特殊的。例如:'hashedPassword =“start'end”&& echo'/^user1:/ s _:[^:] *:_:'“$ hashedPassword”':_''打印'/^user1:/ s _:[^ :] *:_:start'end:_',看起来不错。 – l0b0