Почему?
Мои службы запускаются через соответствующие файлы модулей или сценарии инициализации. Мне не нужно, чтобы обычные пользователи делали что-то особенное на моих серверах, кроме su
. Я специально ищу способ полностью выключить polkit без его самостоятельного запуска при перезапуске других служб.
Я предвижу проблему с объяснением этого аудиторам в нашей среде PCI. Мы должны описать цель каждой услуги. У нас нет законного варианта использования polkit в среде PCI.
Дополнительное примечание: я не устанавливал polkit. Эти серверы имеют очень минимальную установку около 670 МБ на / . Это было обновление systemd, которое, по-видимому, установило polkit, и спецификация, очевидно, имеет зависимости от всех управляемых служб systemd. После установки мне нужно перестроить машину, чтобы удалить ее, как если бы вы пытались удалить nss
после ее установки. Меня беспокоит то, что если я принудительно деинсталлирую, то могут остаться файлы, которые приведут к сбою systemd, предполагающего, что он там есть.
Что я пробовал:
Create / etc / polkit-1 / rules. d / 99-deny-all.rules
с
polkit.addRule(function(action, subject) {
return polkit.Result.YES;
});
Затем
systemctl daemon-reload && systemctl daemon-reexec
Это ничего не делает,
[Обновление] Как упоминал Александр, перезапуск polkit применит настройки к самому polkit, и это хорошо, но я ищу способ запретить запуску polkit, который не нарушит работу других служб. [обновление 2] Это может фактически помешать правильному перезапуску некоторых служб. Маскировка или отключение службы: Это приводит к зависанию других служб при запуске и завершении работы в ожидании polkit. Edit Затем Это ничего не делает, Я читал справочные страницы пару раз. Возможно, мне не хватает чего-то очень простого. Я бы предпочел метод, который сохраняется после обновления пакета systemd. Конечная цель, которую я ищу, - чтобы polkit.service не запускался при перезапуске других демонов, таких как unbound, bind, dhcp и т. Д.
/usr/share/dbus-1/sstem-services/org.freedesktop.PolicyKit1.service
с: [snip]
Exec=/bin/false
[snip]
systemctl daemon-reload && systemctl daemon-reexec
/ usr / lib / polkit-1 / polkitd --no-debug
продолжает запускаться, когда другие службы под systemd перезапускаются.
Обновление
Редхат изменил зависимости RPM вокруг Polkit. Теперь его можно удалить с серверов, даже если что-то затянуло его во время предыдущих обновлений или установок.
Теперь я могу удалить Polkit с серверов, которые были построены на CentOS 7.6.
Он все еще необходим на рабочих станциях, и, похоже, подходит для использования на настольных компьютерах.
. После добавления правил в /etc/polkit-1/rules.d/99-deny-all.rules
вам следует перезапустить службу polkit с помощью systemctl restart polkit
. После этого systemctl будет выполнять любые запросы от непривилегированного пользователя.
Как владельцы систем, мы часто не заботимся о намерениях создателя дистрибутива. Многие не согласятся, но я считаю, что ограничения на запуск / остановку / установку / удаление компонентов системы и т. Д. Нарушают мою собственность поставщиком, и я поступаю с моими системами так, как я считаю нужным.
Если вы оказались в В ситуации, когда вы видите удаление polkit
как наиболее подходящий вариант, а разработчики дистрибутива не предоставили вам "поддерживаемый" метод для этого, вы можете выполнить поиск по polkitd
и переименуйте файл, затем выполните команду остановки службы.
В моем конкретном случае polkit
имеет тенденцию закреплять одно ядро ЦП, когда мне это не нужно, и я удалил его, используя описанный выше метод . Добро пожаловать и сила пользователям!