Назад | Перейти на главную страницу

Конфиденциальные данные в сценариях инициализации

Я адаптирую несколько примеров, которые нашел в 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 как места положить такой файл.