init脚本中的敏感数据

我正在修改我通过Googlesearch到的一些例子来构build一个初始化脚本来运行一个VirtualBox OSE虚拟机作为守护进程。 我想指定一个VNC访问虚拟机的密码,这个必须作为VBoxHeadless命令的一个参数给出。

通常情况下,init脚本可以被标准用户读取,这似乎是一个有用的约定,但我也不希望这个虚拟机的VNC密码存储在易于访问的纯文本。

什么是处理这种情况的最合适的/传统的方式? 也许把一个根可读的支持数据文件放在某个地方,并让init脚本从那里加载值?

把一个文件只能在根目录下读入/etc是一种我至less在Debian遇到过几次的技术(比如dbconfig-common )。

源文件中的普通密码听起来像是一个好主意,因为init以root身份运行,而/etc已经有很多敏感文件(证书的私钥是其中之一)。

放置这种文件的正确path可能因分发而异。 我个人比较喜欢/etc/name-of-init-script/config ,因为/etc是放置用户文件的好地方。 像/var/lib这样的地方应该保留给你的发行版的包pipe理器pipe理的文件(或者任何他们可能称之为的文件)以及安装在其中的软件。

是的,这是正确的做法。 查看/etc/sysconfig/var/lib作为放置这样的文件的地方。