[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