[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