[devel] Policy по назначению gid для системных групп

Sergey Vlasov vsu на altlinux.ru
Сб Ноя 3 12:37:14 MSK 2012


On Sat, Nov 03, 2012 at 02:53:11AM +0400, Dmitry V. Levin wrote:
> > http://www.altlinux.org/Pseudo_User_Policy
> 
> Там написано, что "идея создавать служебные аккаунты динамически при
> установке пакета сама по себе чревата несовместимостью uid/gid различных
> инсталляций, что создаёт вполне реальные проблемы с резервным копированием
> (восстановлением данных в контексте другого сервера)".
> 
> К сожалению, там не расшифровано, каким образом из несовпадения uid/gid в
> разных системах вытекают "вполне реальные проблемы", поскольку совершенно
> не очевидно, какие именно типовые сценарии резервного копирования имел в
> виду автор.
> 
> С другой стороны, там в конце есть ссылки на разные интересные обсуждения,
> которые имеет смысл посмотреть.

Можно ещё посмотреть, что в этой области делают в других
дистрибутивах.

Например, в Fedora официальная текущая политика пока что не
предусматривает статическое назначение uid/gid:

  http://fedoraproject.org/wiki/Packaging:UsersAndGroups

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

  http://fedoraproject.org/wiki/PackageUserCreation

(там внизу несколько ссылок на обсуждения этого вопроса).  Без
дополнительных настроек идентификаторы остаются динамическими.

На самом деле проблема выросла из того, что LSB предусматривает для
статически назначаемых идентификаторов пользователей лишь диапазон
0-99, а диапазон 100-499 предназначается для динамического назначения:

  http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/uidrange.html

Однако диапазона 0-99 уже давно не хватает.  В RHEL 6 решили
проигнорировать написанное в LSB "should" и расширили диапазон
статических идентификаторов до 0-199, при этом динамические
идентификаторы назначаются в диапазоне 200-499, но сверху вниз, а
статические идентификаторы, назначаемые локальным администратором,
предлагается назначать начиная с 300.

  https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Migration_Planning_Guide/ch07s06.html

> В сухом остатке, реализовать враппер с логикой
> useradd "user with specified uid if that uid is available, or with any
> other available uid if that uid is already taken" и соответствующий
> макрос к нему выглядит делом несложным, а вот как эффективно реализовать
> единый реестр всех этих uid'ов, никто не предложил.  Может, завести
> для этого страницу на wiki? :)

Собственно, в Fedora так и сделано:

  http://fedoraproject.org/wiki/PackageUserRegistry

Но там это относительные идентификаторы для fedora-usermgmt;
выделением диапазона для статических идентификаторов должен заниматься
администратор, либо может быть использован пакет
fedora-usermgmt-default-fedora-setup, в котором по умолчанию в
качестве баового идентификатора устанавливается 300 (однако без
переключения альтернатив идентификаторы всё равно останутся
динамическими).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20121103/ca5a75be/attachment-0001.bin>


Подробная информация о списке рассылки Devel