我在一台 Ubuntu Server 14.04 机器上管理几个专用的游戏服务器。这些游戏由Steam命令工具,对于某些游戏来说,需要从命令行参数登录,这些参数是纯可读的文本。
我创建了一些脚本来自动执行每次机器重启时更新服务器的过程,这些脚本由用户运行cron
。
长话短说:我需要找到一种方法来安全地将密码存储在可执行脚本中。我考虑只存储加密的密码,并在将其插入参数之前以某种方式解密steamcmd
,当然还要设置用户权限以仅让所有者用户读取它(甚至只是执行,这可能吗?)。有什么建议吗?
答案1
为了获得最高的安全性,您可能希望将密码存储在一个地方,即您的大脑中。但这不是一个选择,因为您希望完全自动化该过程,并且此方法将要求您每次都输入密码。
您可能看过散列加密技术,例如
gpg
。但即使在这里,您也需要记住并输入密码,所以这是一个糟糕的选择。您可能认为应该将密码存储在加密的文本文件中,并将密码硬编码。但这不会带来任何改变。
最好的折中解决方案是,
- 将密码保存在简单或加密的文本文件中。使该文件只有 root 用户可读。否则,只需将其硬编码到程序中即可。
- 使该程序仅可由 root 用户读取和执行。
- 如果可能的话,拒绝其他用户或访客对计算机的所有访问。
- 加密您的分区,这样即使尝试重置 root 密码也无法读取您的文件。