Я адаптирую несколько примеров, которые нашел в Google, для создания сценария инициализации для запуска виртуальной машины VirtualBox OSE в качестве демона. Я хотел бы указать пароль для доступа VNC к виртуальной машине, и он должен быть указан в качестве аргумента для команды VBoxHeadless.
Обычно сценарии инициализации читаются обычными пользователями, и это кажется полезным соглашением, но я также не хочу, чтобы пароль VNC для этой виртуальной машины хранился в виде легко доступного простого текста.
Каков наиболее подходящий / традиционный способ справиться с подобной ситуацией? Может быть, поместить где-нибудь поддерживающий файл данных, доступный для чтения root, и заставить сценарий инициализации загрузить значение оттуда?
Поместить файл, доступный для чтения только root где-нибудь в /etc
это техника, с которой я сталкивался несколько раз, по крайней мере, в Debian (dbconfig-common
делает это, например).
Для меня поиск файла с простыми паролями, принадлежащими root, звучит как неплохая идея, учитывая тот факт, что init запускается от имени root и в нем уже есть много важных файлов. /etc
в любом случае (частные ключи для сертификатов являются одним из них).
Правильный путь для размещения такого файла может варьироваться от дистрибутива к дистрибутиву. Я лично предпочел бы, например, /etc/name-of-init-script/config
над любым другим местом как /etc
это хорошее место для размещения пользовательских файлов. Такие места как /var/lib
должен быть зарезервирован для файлов, управляемых диспетчером пакетов вашего дистрибутива (или как там он называется) и установленным программным обеспечением, записывающим туда свои данные.
Да, это правильный способ сделать это. Смотреть под /etc/sysconfig
или /var/lib
как места положить такой файл.