Pseudo User Policy: различия между версиями
(использовние шаблона DraftPolicy) |
|||
Строка 48: | Строка 48: | ||
короче говоря, то, на что распространяются unix permissions.</pre> | короче говоря, то, на что распространяются unix permissions.</pre> | ||
''[http://lists.altlinux.org/pipermail/devel/2007-March/043688.html ldv@]'' | ''[http://lists.altlinux.org/pipermail/devel/2007-March/043688.html ldv@]'' | ||
<pre>> > > Можно заводить пользователя _tremulous и | |||
> > > группу _tremulous или нет? И если можно -- с какими uid/gid? | |||
> > > Автогенерируемые, как я понял? Доп. разрешение нужно у кого-нибудь | |||
> > > на этот счет запрашивать? | |||
> > Если автогенерить, то втиснуть uid/gid до 500 желательно... | |||
> Это то понятно, это и в полиси написано: http://www.altlinux.org/UidGid | |||
> | |||
> А вот как именно раздавать -- согласовывая номер с ответственным или же | |||
> автоматически (похоже, что именно этот вариант, судя спекам других | |||
> пакетов) -- неясно. | |||
Согласовывать не надо, useradd выполнит необходимую работу сам. | |||
Более-менее актуальный пример есть в пакете iftop.</pre> | |||
''[http://lists.altlinux.org/pipermail/devel/2008-September/078918.html ldv@]'' | |||
=== Права на каталоги === | === Права на каталоги === |
Версия от 22:22, 9 сентября 2008
Создание псевдопользователей
Проблема
Ряду программных пакетов для реализации работы с понижением привилегий (privilege separation) требуется псевдопользователь (и обычно — соответствующая группа; численное значение — от 1 до 499 согласно принятых норм).
Идея предварительно «забить» всех нужных псевдо в /etc/passwd и /etc/group прямо при создании пакета setup обречена на столкновение с непредвиденными надобностями и серьёзными проблемами с интеграцией изменений — ведь новые версии этих файлов будут установлены как *.rpmnew, а автоматизированные средства сведения изменений не прилагаются.
С другой стороны, идея создавать служебные аккаунты динамически при установке пакета сама по себе чревата несовместимостью uid/gid различных инсталляций, что создаёт вполне реальные проблемы с резервным копированием (восстановлением данных в контексте другого сервера).
Кажется разумным сочетание этих подходов: поддержание списка зарегистрированных UID/GID и реализация добавления «по требованию», но с фиксированными значениями. Для этого требуется написать (обобщить имеющиеся) макросы для проверки коллизий (наличие пользователя с «неправильными» uid/gid, как было с sympa; наличие «реального» пользователя с uid/gid >= 500).
При этом для уменьшения плотности этих самых коллизий предлагается отдавать предпочтение именам вида «_name» для «системных» пользователей и групп.
Заведение псевдопользователей
Если для нормальной работы пакета приходится создавать псевдопользователя, следует обсудить вопрос в devel@ — могут быть непредвиденные проблемы с доступностью или беспроблемностью имени, uid/gid или настройкой аккаунта.
Переписка
> В процессе обсуждения упаковки jabber-пакетов возник такой дискуссионный > вопрос: есть серверы, есть компоненты - под какими unix-пользователями > их запускать? > > Я лично придерживаюсь мнения, что это все абсолютно отдельные, ничем не > связанные сервера и есть смысл держать их под отдельными пользователями > (jabberd2, ejabberd, jabber-jit, jabber-mrim и т.п.) - у них у каждого > собственные спулы, собственные логи и т.п. > > pma@ в личной беседе озвучил противоположную мысль - а не завести ли нам > единого пользователя, например, "jabber", которые будет владеть всеми > каталогами всех jabber-related пакетов, и под которым, собственно, будут > запускаться все сервисы? > > У кого какие мнения есть на этот счет? Если сервера не связанные, то и псевдопользователи должны быть не связанные.
В данном случае под связью имеется в виду - файловая система (общие файлы или каталоги для IPC) - SYSV IPC - сигналы, посылаемые процессам короче говоря, то, на что распространяются unix permissions.
> > > Можно заводить пользователя _tremulous и > > > группу _tremulous или нет? И если можно -- с какими uid/gid? > > > Автогенерируемые, как я понял? Доп. разрешение нужно у кого-нибудь > > > на этот счет запрашивать? > > Если автогенерить, то втиснуть uid/gid до 500 желательно... > Это то понятно, это и в полиси написано: http://www.altlinux.org/UidGid > > А вот как именно раздавать -- согласовывая номер с ответственным или же > автоматически (похоже, что именно этот вариант, судя спекам других > пакетов) -- неясно. Согласовывать не надо, useradd выполнит необходимую работу сам. Более-менее актуальный пример есть в пакете iftop.
Права на каталоги
См. ALT Secure Packaging Policy, но вкратце:
> Мне отсюда не видно, но обычно в таких ситуациях > %dir %attr(2770,root,asterisk) %_localstatedir/asterisk Если в каталог пишет только один псевдопользователь, то 0770. Если в каталог пишет не только один псевдопользователь, то если у них нет общих для записи файлов, то 3770, иначе 2770. Если псевдопользователи только читают из каталога, то 0750. Если псевдопользователи только открывают файлы из каталога, то 0710.
TODO
- ссылки на sympa.spec, webalizer.spec, bugzilla, обсуждения в devel@/sisyphus@