我有一个脚本,需要密码来验证Web服务.预定义用户的单个密码就足够了,如果可能,密码应该安全存储(不是纯文本).
显然我出于安全原因不想在脚本中以明文形式写密码,所以我有脚本问我密码,但每次输入密码都是拖拽.
那么我怎样才能这样做,所以每次运行脚本时都不需要输入密码(比如sudo)?
这个特殊情况下的脚本是Python,但我想最好将它作为Bash中的通用解决方案实现,因此它可以重用于PHP或Ruby等不同语言.
伪代码:
#!/bin/bash
pw = cache.load() or {
pw = ask_user()
cache.save(pw, 15min)
}
myscript.py pw
解决方法:
不要重新发明自己的密码存储区.使用现有的. Linux世界大多聚合于GNOME Keyring. Seahorse提供了一个方便的GUI,用于浏览和修改密钥环并设置主密码.可以使用secret-tool
实用程序从命令行查询密钥环.
secret-tool store --label='Foobar webservice' service foobar account bob
pw=$(secret-tool lookup service foobar account bob)
商店中的密码不会自动过期,但访问商店的权限可以.