[Comm] Groups

Denis S. Filimonov =?iso-8859-1?q?den_=CE=C1_academ=2Eorg?=
Сб Июл 5 10:14:56 MSD 2003


On Saturday 05 July 2003 12:42, Shawkat wrote:
> > Что тут неестесственного-то?
>
> Неестесвенно, откуда берется  набор прав субъекта. Он запрашивается у
> самого субъекта, хотя можно было бы  эти же самые права элементарно
> рассчитать. Пример : у субъекта запрашивается только uid - по нему и
> по _текущему_ содержимому /etc/groups ядро высчитывает в какие группы
> входит пользователь (расчитав из /etc/passwords по uid его username).
>  И уже по высчитанному значению прав субъекта (а не по запрошенному у
> субъекта) и идет сравнение с правами необходимыми для доступа к
> объекту. Я не кернел-программист, но думаю это  совсем не сложно -
> ведь _это_же_самое_ вычисление производится в момент логина
> пользователя. Кто мешает вместо функции _запроса_ прав_у_процесса
> выполнять _функцию_начального_расчета_прав ?
>
Технически это, конечно, возможно, хотя и крайне некрасиво, поскольку 
подразумевает вызов из ядра user-space программ и массу других проблем.
Но дело не в этом, а в том кто обладает правами: процесс или 
пользователь. В текущей реализации это процесс, а Вы предлагаете 
наделить правами пользователя. Первая схема гораздо более гибкая, 
поскольку позволяет процессам отказываться от лишних прав, или получать 
дополнительные. При авторизации только по пользователю ничего этого 
невозможно. А если к этому добавить то, что реализация авторизации по 
пользователю более дорогая и потенциально опасная, вопрос почему этого 
нет отпадет сам собой.

-- 
Sincerely,
Denis.


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