[devel] Проблемы привилегий и ролей

Evgeny Sinelnikov =?iso-8859-1?q?sin_=CE=C1_altlinux=2Eru?=
Пт Фев 22 00:30:04 MSK 2008


2008/2/21 Хихин Руслан <hihin на yandex.ru>:
> Здравствуйте Evgeny Sinelnikov
>   В сообщении от 21 февраля 2008 Evgeny Sinelnikov написал(a):
>   > 2008/2/21 Хихин Руслан <hihin на yandex.ru>:
>   > > Здравствуйте Evgeny Sinelnikov
>   > >  В сообщении от 21 февраля 2008 Evgeny Sinelnikov написал(a):
>   > > Вы предлагаете Rsbac или Selinux ?
>   >
>   > Ни то, ни другое... Эти два проекта расширяют возможности
>   > аворизации.
>  .......................
>
>  > Вообще этот подход позволяет решить вопрос, который был поставлен,
>   > простым
>   > скриптом в спек-файле, то есть даже не обязательно реализовывать
>   > вариант с
>   > /etc/role.d файлами.
>  Мне нравится, а что надо для реализации вашей идеи ?
>

Для начала нужно написать nss-модуль, который будет интерпретировать
новые файлы настройки и назначать права:
http://www.gnu.org/software/libc/manual/html_node/Name-Service-Switch.html
Далее написать набор утилит для манипулирования ролями:
roleadd, roledel, rolemod

Но сначала нужно определиться с политикой использования этого модуля.
Такие детали, как установка модуля через rpm и возможно его
автоматическое подключение, можно пока опустить. Это суть политики не
определяет.
Нужно определиться с тем как мы решаем проблемы с помощью этого модуля:
0) Именование ролей и их соотвествие группам. Будут у нас роли
отдельной сущностью или являться группой?
Отдельная сущность может иметь отдельное название, а группа должна
совпадать по имени с соотвествующей группой или иметь с ней
соответствие.
1) Список первоначально заданных ролей
Предлпагаю:
user, power и admin
2) Роль назначаемая для вновь создаваемых пользователей, по умолчанию
user или power - Где хранить эту настройку?
3) Список первоначальных привилегий для ролей:
Для user ?
Для power ?
Для admin ?
4) Формат хранения данных для ролей. По сравнению с редыдущем примером
хочу предожить такой вариант:
/etc/role
#name:gid:pivilegies_gids:users_uids
user:100:80,119:
admin:10:57,35:
power:200:
для gid'ов 10,100 и, к примеру, 200 записи о группах должны
присутствовать в /etc/group, в противном случае роль игнорируется (или
нет? может разрешить безгрупповые роли?)
5) Нужно определиться с политикой добавления пакетами политик по умолчанию:
5.1) запускать утилиты в скриптах RPM-пакета.
5.2) добавлять политики по умолчанию файлами в специальный каталог
/etc/role.d. Для этого нужно определиться с форматом добавляемых
файлов. Например, таким:
/etc/role.d/application:
#name:pivilegies_gids:users_uids
user:510:
где, 510 - это gid важный для приложения application, например samba.

-- 
Sin (Sinelnikov Evgeny)


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