如何安全地将用户输入的密码放入文件中?

如何安全地将用户输入的密码放入文件中?

有什么方法可以将用户输入的密码放入文件中(无论是在 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 重新启动机器并获取文件。还有一个长的其他可能性的清单。这是不是安全的。也许对于休闲用途来说足够了,但对于严肃的事情来说就不够了。并考虑到“我认为这并不重要”是不够的,需要考虑所授予的权限的任何可能的使用链,使用相同密码(或以相同方式构造的密码)的其他站点,......

相关内容