Как пакет Debian должен создать учетные записи пользователей?

Для спящего режима система должна иметь где-нибудь на диске для записи данных, которые находятся в RAM для сохранения его от истребления, когда питание выходит. Существуют другие способы сделать, это, но не дистрибутивы использует область подкачки для спящего режима, чтобы не столкнуться с проблемами свободного пространства на жестком диске. Существует параметр ядра для конфигурирования этого, но Вы не должны должны быть идти туда.

Самая простая вещь состояла бы в том, чтобы только создать файл подкачки и включить его. Сделайте это несколько больше, чем Ваш поршень. Скажите, что Вы имеете поршень 4G, делаете подкачку 5G.

$ dd if=/dev/zero of=/swap bs=1024 count=$((5*1024*1024))
$ mkswap /swap

Затем включите его:

$ swapon /swap

И добавьте его к fstab, таким образом, это включено на начальной загрузке:

/swap swap swap defaults 0 0

Наконец необходимо сказать ядро, когда оно загружается, где проверить на бывшие в спящем режиме данные потенциала для начальной загрузки также. В этом случае это должно знать, где найти Ваш файл подкачки, таким образом, необходимо будет добавить ядро paramenter. Можно найти документы для этого шага в документации kernel.org.

Обычно это упало бы на быть в спящем режиме программу, чтобы определить точное местоположение данных резюме и отметить его в загрузчике.

33
29.07.2014, 06:34
3 ответа

Вики-страница Debian содержит более подробные и конкретные указания, чем уже упоминавшееся Руководство по политике Debian. См. AccountHandlingInMaintainerScripts :

Программа adduser поступает правильно, если вызывается с параметром --system. Таким образом, обычно требуется только вызвать

adduser --system $ USERNAME

в вашем postinst, чтобы создать учетную запись с отключенными логинами, первичной группой nogroup и домашним каталогом в / home. Если вам нужны другие варианты, добавляйте их по своему усмотрению.

Обычно нет необходимости перепроверять с getent, существует ли уже учетная запись, поскольку adduser --system обычно работает правильно. Если нет, пожалуйста, сообщите об ошибке в adduser, чтобы ваши сценарии сопровождающего были простыми.

Рекомендации по удалению учетных записей неубедительны. Однако отмечу, что соответствующий совет для Fedora не является двусмысленным.

Не удаляйте пользователей или группы Мы никогда не удаляем пользователей или группы, созданные пакетами. Нет разумного способа проверить, остались ли файлы, принадлежащие этим пользователям / группам (и даже если бы были, что бы мы с ними сделали?), А оставление тех, кто остался, с указанием прав собственности, указывающей на несуществующие теперь пользователи / группы, может привести к проблемам безопасности когда семантически несвязанный пользователь / группа создается позже и повторно использует UID / GID. Кроме того, в некоторых настройках удаление пользователя / группы может быть невозможно или / или нежелательно (например, при использовании совместно используемой базы данных удаленных пользователей / групп). Очистка неиспользуемых пользователей / групп оставлена ​​на усмотрение системных администраторов, если они того пожелают.

22
27.01.2020, 19:37

Как администратор, устанавливающий пакеты, я ожидал бы, что мои пакеты автоматически создадут пользователей, в которых они требуют или пред или пред postinst, так, чтобы любые файлы, необходимые для владения пользователю, могли быть сделаны такими, прежде чем программа будет запущена.

Ваша программа должна только работать как корень, если этому нужно к (например, свяжите с привилегированным портом), и идеально должен отбросить его полномочия, после того как это закончило делать то, что потребовало корня.

Можно посмотреть на то, как другие (установленные) пакеты обработали это при помощи

grep -l adduser /var/lib/dpkg/info/*postinst /var/lib/dpkg/info/*preinst

и чтение перечисленных файлов (большинство проводит больше чем одну строку опций).

Достаточно странно, все кроме одного из моих установленных пакетов, которые создают пользовательское использование adduser добавить пользователей, но adduser пакет не необходимый пакет, таким образом, Ваш пакет должен будет быть создан для зависимости от него. useradd программа используется libuuid1 пакетом и является частью passwd пакет, который является необходимым пакетом.

12
27.01.2020, 19:37
  • 1
    Это ужасно, проверьте надлежащий способ генерировать preinst сценарии вместо того, чтобы вручную взломать тот. –  LtWorf 24.08.2017, 16:02
  • 2
    --quiet подход кажется очень популярным –  vidstige 09.10.2017, 14:18
[1133167]Раздел [1133564]10.9. Разрешения и владельцы [1133565] в руководстве по политике Debian [1133566] имеют то, что вы ищете (начиная с "версии 3.9.5.0, 2013-10-28"):

Если вам нужно создать нового пользователя или группу для вашего пакета, есть следующие возможности два варианта. Во-первых, вам, возможно, понадобится сделать некоторые файлы из бинарный пакет принадлежит этому пользователю или группе, или вам может понадобиться скомпилируйте идентификатор пользователя или группы (а не просто имя) в бинарный (хотя этого последнего следует по возможности избегать, так как в этом случае если вам нужен статически выделенный идентификатор)

Если вам нужен статически выделенный идентификатор, вы должны попросить пользователя или group id от мейнтейнера [1133918] base-passwd', и не должен освобождать пакет до тех пор, пока тебе не выделили один. После того, как вы выделенный, вы должны либо сделать так, чтобы пакет зависел от версии пакет [1133919]base-passwd' с id, присутствующим в [1133920]/etc/passwd' или [1133921]/etc/group', или организовать для вашего пакета создание пользователя или группы. себя с правильным id (используя [1133922]adduser') в его [1133923]preinst' или [1133924] постинст. (Делать это в [1133925]постинст' предпочтительнее, если это возможно, в противном случае понадобится предварительная зависимость от `пользователя''. package.)

Примечание:[1133573] Список рассылки debian-devel довольно активен и отвечает на такие вопросы [1133574]too[1133575] (хотя этот пример из 2003 года). [1133172]

6
27.01.2020, 19:37

Теги

Похожие вопросы