Пакет qqq.deb
устанавливает программу, qqq
которая должна запускаться от uqqq
учетной записи пользователя. Пакет состоит из qqq
программы, qqq.conf
конфигурационного файла и /etc/init.d/qqq
initscript.
Как пакет должен управлять созданием пользователя uqqq
? Есть ли лучшие практики или официальные рекомендации по этому поводу?
- Просто создайте пользователя автоматически
uqqq
в postinst; - Создать пользователя автоматически при первом запуске из
/etc/init.d/qqq
скрипта; - Создать пользователя автоматически при первом запуске
qqq
программы (без аргументов) - Не создавайте учетные записи пользователей, откажитесь от запуска, если пользователь явно не создан администратором (например, используя
qqq --create-user
); - Не создавайте учетные записи пользователей, по умолчанию работайте небезопасно из-под root;
- Интерактивно спросите в postinst, скрипте init.d или в
qqq
самом себе, создавать ли пользователя.
Должен ли пакет удалять учетную запись пользователя при удалении?
grep adduser /var/lib/dpkg/info/*.postinst
на любой системе, основанной на Debian, чтобы получить много примеров.adduser
используется, это также должно зависеть от пакета. См .: lintian.debian.org/tags/…Ответы:
Вики Debian содержит более подробное и конкретное руководство, чем уже упоминавшееся Руководство по политике Debian. См. AccountHandlingInMaintainerScripts :
Совет по удалению учетных записей не дает окончательных результатов. Однако отмечу, что соответствующий совет для fedora не вызывает сомнений.
источник
Как администратор, устанавливающий пакеты, я бы ожидал, что мои пакеты автоматически создадут пользователей, которых они требуют, в pre или postinst, так что любые файлы, которые должны принадлежать пользователю, могут быть созданы до запуска программы.
Ваша программа должна запускаться от имени root только в том случае, если это необходимо (например, привязка к привилегированному порту), и в идеале она должна отбрасывать свои привилегии, как только она закончит делать требуемый root.
Вы можете посмотреть, как другие (установленные) пакеты справились с этим, используя
и чтение перечисленных файлов (большинство из них занимают более одной строки параметров).
Как ни странно, все, кроме одного из моих установленных пакетов, которые создают пользователя, используют
adduser
для добавления пользователей, но пакет adduser не является обязательным пакетом, поэтому ваш пакет должен быть собран, чтобы зависеть от него.useradd
Программа используется пакет libuuid1, и является частьюpasswd
пакета , который является обязательным пакетом.источник
--quiet
подход кажется очень популярнымРаздел 10.9. Разрешения и владельцы в Руководстве по политике Debian содержат то, что вы ищете (из "версии 3.9.5.0, 2013-10-28"):
Заметка: The Debian-Devel список довольно активен и ответы на такие вопросы тоже (хотя этот пример с 2003 года).
источник
adduser
вpostinst
».