У нас есть человечность 18.04 ОС. Существует 2 представленные пользователя: user1, user2. user1 является административной учетной записью и является членом sudo группы: uid=1010(user1) gid=1010(user1) groups=1010(user1),27(sudo),110(lxd)
. user2 является обычным пользователем uid=1000(user2) gid=1000(user2) groups=1000(user2)
. Теперь, в/etc/sudoers файле у меня есть запись по умолчанию для sudo группы:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
А также специальные команды позволили выполняться с административными (корневыми) правами для user2:
Cmnd_Alias CMD_RELOAD_PHP_FPM = /bin/systemctl reload php7.0-fpm, /bin/systemctl reload php7.2-fpm
user2 ALL=(root:root) NOPASSWD: CMD_RELOAD_PHP_FPM
На этом шаге все в порядке, user2 может выполнить все указанное в Cmnd_Alias, не вводя пароль, таким образом работать как ожидалось.
Но когда user2 пытается выполнить что-то, чему его не разрешают, он заставляет подсказку входить, внимание, user1
пароль. Нет root
, не его собственное user2
, но user1
пароль, вместо тихо или информативно отклонение такого действия:
user2@someserver:~$ /bin/systemctl restart <someservice>
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'someservice.service'.
Authenticating as: user1
Password:
user1
единственный член sudo группы.
grep 'sudo' /etc/group
sudo:x:27:user1
grep 'sudo' /etc/gshadow
sudo:*::user1
Если user1
удален из sudo
группа и user2
попытки выполнить ту же команду, затем его просят войти root
пароль.
Как я могу изменить это поведение, таким образом, user2
вместо попыток отклонили бы того, чтобы просить, чтобы он ввел пароль?
У меня есть недостаточно знания о polkit
, но это, кажется, причина такого поведения.
Строка, которая ответственный для этого:
AdminIdentities=unix-group:sudo;unix-group:admin
в /etc/polkit-1/localauthority.conf.d/51-ubuntu-admin.conf
файл
Комментарий AdminIdentities=...
строка и перезапускающий polkit демон возвращает поведение по умолчанию где root
пароль требуется для сервисного перезапуска. Не уверенный, если это безопасно, или нет. Вероятно, некоторые члены сообщества могли объяснить лучше.
Также кажется, что я нашел место где действия по умолчанию для systemd
описаны, если непривилегированный пользователь пытается выполнить некоторое действие с systemd сервисом.
Это в файле: /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy
Если я устанавливаю значения как это:
<action id="org.freedesktop.systemd1.manage-units">
<description gettext-domain="systemd">Manage system services or other units</description>
<message gettext-domain="systemd">Authentication is required to manage system services or other units.</message>
<defaults>
<allow_any>no</allow_any>
<allow_inactive>no</allow_inactive>
<allow_active>no</allow_active>
</defaults>
</action>
я начинаю добираться Access denied
сообщение при попытке перезапустить сервис как непривилегированного пользователя.