Pseudo User Policy: различия между версиями

Материал из ALT Linux Wiki
м UidGid» переименована в «PseudoUserPolicy»: более адекватное название)
(использовние шаблона DraftPolicy)
Строка 1: Строка 1:
[[Category:Policy]]
{{MovedFromFreesourceInfo|AltLinux/Policy/UidGid}}
{{Викифицировать}}
{{Викифицировать}}
{{DraftPolicy
|responsible=?
}}


== Создание псевдопользователей ==
== Создание псевдопользователей ==
Строка 7: Строка 8:


=== Проблема ===
=== Проблема ===
Ряду программных пакетов для реализации работы с понижением привилегий (privilege separation) требуется псевдопользователь (и обычно -- соответствующая группа; численное значение -- от 1 до 499 согласно принятых норм).
Ряду программных пакетов для реализации работы с понижением привилегий (privilege separation) требуется псевдопользователь (и обычно — соответствующая группа; численное значение — от 1 до 499 согласно принятых норм).


Идея предварительно "забить" всех нужных псевдо в <tt>/etc/passwd</tt> и <tt>/etc/group</tt> прямо при создании пакета <tt>setup</tt> обречена на столкновение с непредвиденными надобностями и серьёзными проблемами с интеграцией изменений -- ведь новые версии этих файлов будут установлены как <tt>*.rpmnew</tt>, а автоматизированные средства сведения изменений не прилагаются.
Идея предварительно «забить» всех нужных псевдо в <tt>/etc/passwd</tt> и <tt>/etc/group</tt> прямо при создании пакета <tt>setup</tt> обречена на столкновение с непредвиденными надобностями и серьёзными проблемами с интеграцией изменений — ведь новые версии этих файлов будут установлены как <tt>*.rpmnew</tt>, а автоматизированные средства сведения изменений не прилагаются.


С другой стороны, идея создавать служебные аккаунты динамически при установке пакета сама по себе чревата несовместимостью uid/gid различных инсталляций, что создаёт вполне реальные проблемы с резервным копированием (восстановлением данных в контексте другого сервера).
С другой стороны, идея создавать служебные аккаунты динамически при установке пакета сама по себе чревата несовместимостью uid/gid различных инсталляций, что создаёт вполне реальные проблемы с резервным копированием (восстановлением данных в контексте другого сервера).


Кажется разумным сочетание этих подходов: поддержание списка зарегистрированных UID/GID и реализация добавления "по требованию", но с фиксированными значениями. Для этого требуется написать (обобщить имеющиеся) макросы для проверки коллизий (наличие пользователя с "неправильными" uid/gid, как было с sympa; наличие "реального" пользователя с uid/gid >= 500).
Кажется разумным сочетание этих подходов: поддержание списка зарегистрированных UID/GID и реализация добавления «по требованию», но с фиксированными значениями. Для этого требуется написать (обобщить имеющиеся) макросы для проверки коллизий (наличие пользователя с «неправильными» uid/gid, как было с sympa; наличие «реального» пользователя с uid/gid >= 500).


При этом для уменьшения плотности этих самых коллизий предлагается отдавать предпочтение именам вида "_name" для "системных" пользователей и групп.
При этом для уменьшения плотности этих самых коллизий предлагается отдавать предпочтение именам вида «_name» для «системных» пользователей и групп.


=== Заведение псевдопользователей ===
=== Заведение псевдопользователей ===
Если для нормальной работы пакета приходится создавать псевдопользователя, следует обсудить вопрос в devel@ -- могут быть непредвиденные проблемы с доступностью или беспроблемностью имени, uid/gid или настройкой аккаунта.
Если для нормальной работы пакета приходится создавать псевдопользователя, следует обсудить вопрос в devel@ — могут быть непредвиденные проблемы с доступностью или беспроблемностью имени, uid/gid или настройкой аккаунта.
<!-- взято с TypicalPackagingErrors/UserDel -->
<!-- взято с TypicalPackagingErrors/UserDel -->


Строка 64: Строка 65:


=== Ссылки ===
=== Ссылки ===
* [[Документация/ПраваГруппПользователей|Описание назначения некоторых групп]]
* [[Документация/ПраваГруппПользователей|Описание назначения некоторых групп]]
* [https://bugzilla.altlinux.org/show_bug.cgi?id=15268 пример проблемы]
* [https://bugzilla.altlinux.org/show_bug.cgi?id=15268 пример проблемы]
* [https://bugzilla.altlinux.org/show_bug.cgi?id=9895 add useradd and groupadd macros]
* [https://bugzilla.altlinux.org/show_bug.cgi?id=9895 add useradd and groupadd macros]
* [http://lists.altlinux.org/pipermail/devel/2004-January/018128.html http://lists.altlinux.org/pipermail/devel/2004-January/018128.html]
* [http://lists.altlinux.org/pipermail/devel/2004-January/018128.html http://lists.altlinux.org/pipermail/devel/2004-January/018128.html]
* [http://lists.altlinux.org/pipermail/devel/2004-January/018132.html http://lists.altlinux.org/pipermail/devel/2004-January/018132.html]
* [http://lists.altlinux.org/pipermail/devel/2004-January/018132.html http://lists.altlinux.org/pipermail/devel/2004-January/018132.html]

Версия от 19:30, 9 сентября 2008

42px-Wikitext-ru.svg.png
Эту статью следует викифицировать.
Stub.png
Черновик политики Sisyphus
Автор(ы) — ?


Создание псевдопользователей

Проблема

Ряду программных пакетов для реализации работы с понижением привилегий (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 пакетов, и под которым, собственно, будут
> запускаться все сервисы?
> 
> У кого какие мнения есть на этот счет?

Если сервера не связанные, то и псевдопользователи должны быть не связанные.

ldv@

В данном случае под связью имеется в виду
- файловая система (общие файлы или каталоги для IPC)
- SYSV IPC
- сигналы, посылаемые процессам
короче говоря, то, на что распространяются unix permissions.

ldv@

Права на каталоги

См. ALT Secure Packaging Policy, но вкратце:

> Мне отсюда не видно, но обычно в таких ситуациях
> %dir %attr(2770,root,asterisk) %_localstatedir/asterisk
Если в каталог пишет только один псевдопользователь, то 0770.
Если в каталог пишет не только один псевдопользователь, то
  если у них нет общих для записи файлов, то 3770, иначе 2770.

Если псевдопользователи только читают из каталога, то 0750.
Если псевдопользователи только открывают файлы из каталога, то 0710.

ldv@

TODO

  • ссылки на sympa.spec, webalizer.spec, bugzilla, обсуждения в devel@/sisyphus@

Ссылки