![如何安全地将用户输入的密码放入文件中?](https://linux22.com/image/29778/%E5%A6%82%E4%BD%95%E5%AE%89%E5%85%A8%E5%9C%B0%E5%B0%86%E7%94%A8%E6%88%B7%E8%BE%93%E5%85%A5%E7%9A%84%E5%AF%86%E7%A0%81%E6%94%BE%E5%85%A5%E6%96%87%E4%BB%B6%E4%B8%AD%EF%BC%9F.png)
有什么方法可以将用户输入的密码放入文件中(无论是在 Unix 中还是在 Expect 中)。
read -s -p "enter password" input
echo $input > file
上面的代码安全吗?
我想在我的期望脚本中使用该文件作为密码的输入
因为我已经尝试过这个,并且我可以使用此期望代码看到屏幕上显示的密码一秒钟。
set timeout 30
stty -echo
send_user -- "Password for $username :"
expect_user -re "(.*)\n"
set timeout .000000001
set timeout 30
send_user "\n"
set timeout 30
set password $expect_out(1,string)
send -- "$password\r"
答案1
任何能够读取该文件的人都会获得密码。这包括root
,拥有该文件的用户(或冒充他们的人),以及(取决于权限)组中的用户甚至每个人。任何有几分钟独处时间的人都可以使用 LiveCD/LiveUSB 重新启动机器并获取文件。还有一个长的其他可能性的清单。这是不是安全的。也许对于休闲用途来说足够了,但对于严肃的事情来说就不够了。并考虑到“我认为这并不重要”是不够的,需要考虑所授予的权限的任何可能的使用链,使用相同密码(或以相同方式构造的密码)的其他站点,......