Bug 39420 - Polkit не проверяет список групп пользователя, назначенныx через NSS.
Summary: Polkit не проверяет список групп пользователя, назначенныx через NSS.
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: polkit (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Valery Inozemtsev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-12-10 12:07 MSK by Иван Савин
Modified: 2021-01-26 23:59 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Иван Савин 2020-12-10 12:07:48 MSK
На текущий момент у нас для удалённых пользователей из домена не отрабатывает доступ к DBUS'ным сервисам, даже если им назначается группа wheel.

Проблема в том, что служба polkit проверяет список групп, в которые входит пользователь без учёта того, какие группы пользователю назначаются через NSS. Поэтому локальные группы, назначаемые глобальным пользователям через libnss-role, не учитываются.

Необходимо доработать polkit, чтобы такая проверка для групп, назначаемых пользователю выполнялась.
Comment 1 Иван Савин 2020-12-10 12:10:52 MSK
Вероятное решение:
http://git.altlinux.org/people/svn17/packages/?p=polkit.git;a=summary

merge-request в апстрим:
https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/71
Comment 2 Иван Савин 2020-12-10 12:53:06 MSK
Таска 263041
Comment 3 Dmitry V. Levin 2020-12-24 02:19:33 MSK
(In reply to Иван Савин from comment #1)
> Вероятное решение:
> http://git.altlinux.org/people/svn17/packages/?p=polkit.git;a=summary
> 
> merge-request в апстрим:
> https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/71

Я не претендую на роль ревьюера polkit, но в функции addition_to_user_identities_user_of_subject у вас такая глубина вложенности блоков, что в тех проектах, где я исполняю роль ревьюера, я бы предложил использовать конструкции, которые не приводят к такой глубине вложенности.
Например,
if (unix_groups == NULL)
  return;
...
if (passwd == NULL)
  return;
и т.д.
Comment 4 Иван Савин 2020-12-24 18:50:35 MSK
(Ответ для Dmitry V. Levin на комментарий #3) 
> Я не претендую на роль ревьюера polkit, но в функции
> addition_to_user_identities_user_of_subject у вас такая глубина вложенности
> блоков, что в тех проектах, где я исполняю роль ревьюера, я бы предложил
> использовать конструкции, которые не приводят к такой глубине вложенности.
> Например,
> if (unix_groups == NULL)
>   return;
> ...
> if (passwd == NULL)
>   return;
> и т.д.

Исправил.
Comment 5 Иван Савин 2020-12-30 14:38:41 MSK
(Ответ для Иван Савин на комментарий #4)
> Исправил.

Это было сделано для другой ветки. Проделал эти же исправления для sisyphus.
Comment 6 Repository Robot 2021-01-26 23:59:04 MSK
polkit-0.118-alt2 -> sisyphus:

 Mon Dec 07 2020 Ivan Savin <svn17@altlinux> 0.118-alt2
 - Add the ability to add user_of_subject to user_identities list
   if user_of_subject is a member of the group with administrator
   rights but it is not in /etc/groups (If a privileged group is
   assigned through the NSS). (closes: 39420)