启动脚本中的敏感数据

启动脚本中的敏感数据

我正在调整通过 Google 搜索找到的一些示例,以构建一个 init 脚本来运行 VirtualBox OSE 虚拟机作为守护进程。我想指定一个密码以用于 VNC 访问虚拟机,并且必须将其作为 VBoxHeadless 命令的参数提供。

按照惯例,初始化脚本可由标准用户读取,这似乎是一个有用的惯例,但我也不希望该虚拟机的 VNC 密码以易于访问的纯文本形式存储。

处理这种情况最合适/最常规的方法是什么?也许将 root 可读的支持数据文件放在某个地方,然后让 init 脚本从那里加载值?

答案1

将只有 root 才能读取的文件放入某处/etc是一种我至少在 Debian 中遇到过几次的技术(dbconfig-common例如,这样做)。

考虑到 init 以 root 身份运行并且其中已经有很多敏感文件/etc(证书的私钥就是其中之一),获取属于 root 的带有明文密码的文件对我来说听起来是一个不错的主意。

放置此类文件的正确路径可能因发行版而异。我个人更喜欢 eg/etc/name-of-init-script/config而不是任何其他位置,因为/etc它是放置用户文件的好地方。像 eg 这样的地方/var/lib应该保留给由发行版的数据包管理器(或任何他们可能称呼它的东西)管理的文件,并且安装的软件会在那里写入数据。

答案2

是的,这是正确的做法。查看/etc/sysconfig/var/lib作为放置此类文件的位置。

相关内容