<br><br><div class="gmail_quote">2008/2/21 Хихин Руслан &lt;<a href="mailto:hihin@yandex.ru">hihin@yandex.ru</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Здравствуйте Evgeny Sinelnikov<br>
 &nbsp;В сообщении от 21 февраля 2008 Evgeny Sinelnikov написал(a):<br>
Вы предлагаете Rsbac или Selinux ?<br>
</blockquote></div><br>Ни то, ни другое... Эти два проекта расширяют возможности аворизации. SELinux за счёт добавления контекста безопасности, а RSBac расширяет возможностями сових модулей, которые вносят свои данные в расширенные атрибуты.... Оба решения не расширяют списка стандартных групп пользователя. Они на уровне ядря динамически расширяют критерии оценки действий.<br>
<br>Для рассматриваемой задачи оба эти решения - монстры... На домашнем компьютере, в этом контексте, они излишни. А кроме того ещё и бесполезны.<br><br>Я предлагаю вариант решения проблемы в виде собственного nss-модуля, который сможет решить проблемы добавления групп в группы. Это решения позволит устранить вопрос об установке нового пакета, который должен создать группу и хочет, по умолчанию, предоставить её всем пользователям и только. Группу создать не сложно. Но, её ведь нужно добавить всем пользователям. Если иметь механизм групп в группах и предоставить пакетам регистрировать стандартные настройки своих привилегий, то это решит все вопросы, которые так тичично были решены правами 0777.<br>
Например, будем считать, что мы реализуем группы в группах. Для решения этой задачи может быть применён следующий метод:<br>1) Однажды, в самом начале, после установки нашего расширения, скажем libnss_roles в /etc/nsswitch.conf прописывается такая строка:<br>
group: files roles<br>2) Далее этот модуль расширяет список привилеший назначаемых пользователям. Тут можно считать, что некотрые группы у нас представляют собой роли. Например, для начала, можно решить, что группа users это роль пользователь, а wheel - администратор.<br>
3) При входе в систему, кроме стандартных групп из /etc/group, новый модуль добавляет пользователю дополнительные привилегии (тоже группы) из файла /etc/roles:<br>users: xgrp, cdwriter<br>wheel: webmaster, kqemu<br>То есть, всем, кто входят в группу users, будут дополнительно назначены xgrp и cdwriter, а всем, кто входит в группу wheel - webmaster и kqemu.<br>
На самом деле, по ряду моментов, стоит указывать не имена групп, а gid&#39;ы - для утилит roleadd и roledel - это не важно, ну а для ручной правки конечно не удобно. Зато снимается ряд вопросов при мпереименовании пользователей, и, что более актуально, для сетевых... Получаем /etc/roles вида:<br>
users: 80,119<br>wheel: 57,35<br>4) Далее, для устанавливаемых пакетов вроде vdr можно организовать специальный каталог /etc/role.d, куда усанавливаемые пакеты смогут добавлять файлы вида:<br>/etc/role.d/vdr:.<br>users: vdr<br>
или<br>users: VDR_GID<br>Вообще этот подход позволяет решить вопрос, который был поставлен, простым скриптом в спек-файле, то есть даже не обязательно реализовывать вариант с /etc/role.d файлами.<br> <br>-- <br>Sin (Sinelnikov Evgeny)