Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.
Создание псевдопользователей
Проблема
Ряду программных пакетов для реализации работы с понижением привилегий (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.
> Мне отсюда не видно, но обычно в таких ситуациях> %dir %attr(2770,root,asterisk) %_localstatedir/asterisk
Если в каталог пишет только один псевдопользователь, то 0770.
Если в каталог пишет не только один псевдопользователь, то если у них нет общих для записи файлов, то 3770, иначе 2770.
Если псевдопользователи только читают из каталога, то 0750.
Если псевдопользователи только открывают файлы из каталога, то 0710.