我想在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