Ряду программных пакетов для реализации работы с понижением привилегий (privilege separation) требуется псевдопользователь (и обычно — соответствующая группа; численное значение — от 1 до 499 согласно принятых норм).
Идея предварительно «забить» всех нужных псевдо в /etc/passwd и /etc/group прямо при создании пакета setup обречена на столкновение с непредвиденными надобностями и серьёзными проблемами с интеграцией изменений — ведь новые версии этих файлов будут установлены как *.rpmnew, а автоматизированные средства сведения изменений не прилагаются.
С другой стороны, идея создавать служебные аккаунты динамически при установке пакета сама по себе чревата несовместимостью uid/gid различных инсталляций, что создаёт вполне реальные проблемы с резервным копированием (восстановлением данных в контексте другого сервера).
Кажется разумным сочетание этих подходов: поддержание списка зарегистрированных UID/GID и реализация добавления «по требованию», но с фиксированными значениями. Для этого требуется написать (обобщить имеющиеся) макросы для проверки коллизий (наличие пользователя с «неправильными» uid/gid, как было с sympa; наличие «реального» пользователя с uid/gid >= 500).
При этом для уменьшения плотности этих самых коллизий предлагается отдавать предпочтение именам вида “_name” для «системных» пользователей и групп.
> В процессе обсуждения упаковки jabber-пакетов возник такой дискуссионный > вопрос: есть серверы, есть компоненты – под какими unix-пользователями > их запускать? > > Я лично придерживаюсь мнения, что это все абсолютно отдельные, ничем не > связанные сервера и есть смысл держать их под отдельными пользователями > (jabberd2, ejabberd, jabber-jit, jabber-mrim и т.п.) – у них у каждого > собственные спулы, собственные логи и т.п. > > pma@ в личной беседе озвучил противоположную мысль – а не завести ли нам > единого пользователя, например, "jabber", которые будет владеть всеми > каталогами всех jabber-related пакетов, и под которым, собственно, будут > запускаться все сервисы? > > У кого какие мнения есть на этот счет? Если сервера не связанные, то и псевдопользователи должны быть не связанные.
В данном случае под связью имеется в виду – файловая система (общие файлы или каталоги для IPC) – SYSV IPC – сигналы, посылаемые процессам короче говоря, то, на что распространяются unix permissions.
См.
ALT Secure Packaging Policy, но вкратце:
> Мне отсюда не видно, но обычно в таких ситуациях > %dir %attr(2770,root,asterisk) %_localstatedir/asterisk Если в каталог пишет только один псевдопользователь, то 0770. Если в каталог пишет не только один псевдопользователь, то если у них нет общих для записи файлов, то 3770, иначе 2770. Если псевдопользователи только читают из каталога, то 0750. Если псевдопользователи только открывают файлы из каталога, то 0710.
Powered by WackoWiki R4.2