Por quê?
Meus serviços são iniciados por meio de arquivos de unidade apropriados ou scripts de inicialização. Não tenho necessidade de usuários regulares fazerem nada de especial em meus servidores além do su
. Estou procurando especificamente uma maneira de desligar completamente o polkit sem que ele seja iniciado por conta própria quando outros serviços são reiniciados.
Prevejo um problema explicando isso também para os auditores em nosso ambiente PCI. Temos que descrever a finalidade de cada serviço. Não temos um caso de uso legítimo para polkit em um ambiente PCI.
Nota adicional: não instalei o polkit. Esses servidores têm uma instalação mínima em torno de 670 MB em / Foi uma atualização do systemd que parece ter instalado o polkit e a especificação aparentemente tem dependências de todos os serviços gerenciados do systemd. Uma vez instalado, tenho que reconstruir a máquina para removê-lo, assim como tentar removê- nss
lo depois de instalá-lo. Minha preocupação é que, se eu forçar a desinstalação, isso pode ter deixado arquivos que tropeçarão no systemd que assume que está lá.
O que eu tentei:
Criar /etc/polkit-1/rules.d/99-deny-all.rules
com
polkit.addRule(function(action, subject) {
return polkit.Result.YES;
});
Então
systemctl daemon-reload && systemctl daemon-reexec
Isso não faz nada, /usr/lib/polkit-1/polkitd --no-debug
continua a iniciar quando outros serviços no systemd são reiniciados.
[Atualização] Como Alexander mencionou, reiniciar o polkit aplicará as configurações ao próprio polkit e isso é bom, mas estou procurando uma maneira de dizer ao polkit para não iniciar que não interrompa outros serviços.
[ atualização 2 ] Isso pode impedir que alguns serviços sejam reiniciados corretamente.
Mascare ou desative o serviço:
Isso faz com que outros serviços travem na inicialização e no desligamento, aguardando o polkit.
Editar /usr/share/dbus-1/sstem-services/org.freedesktop.PolicyKit1.service
com:
[snip]
Exec=/bin/false
[snip]
Então
systemctl daemon-reload && systemctl daemon-reexec
Isso não faz nada, /usr/lib/polkit-1/polkitd --no-debug
continua a iniciar quando outros serviços no systemd são reiniciados.
Eu li as páginas do manual algumas vezes. Provavelmente é algo muito simples que estou perdendo. Minha preferência seria por um método que persista após as atualizações do pacote systemd.
O objetivo final que estou procurando é que o polkit.service não inicie quando outros daemons forem reiniciados, como unbound, bind, dhcp, etc.
Atualizar
A Redhat mudou as dependências do RPM em torno do Polkit. Agora ele pode ser desinstalado dos servidores, mesmo que algo o tenha puxado durante atualizações ou instalações anteriores.
Agora posso desinstalar o Polkit de servidores que outras pessoas construíram a partir do CentOS 7.6.
Ele ainda é necessário em estações de trabalho e parece ser apropriado para uso em desktop.
Depois de adicionar regras,
/etc/polkit-1/rules.d/99-deny-all.rules
você deve reiniciar o serviço polkit porsystemctl restart polkit
. Após este systemctl executaria qualquer solicitação de usuário não privilegiado.Como proprietários dos sistemas, muitas vezes não nos importamos com a intenção do construtor de distribuição. Muitos discordariam, mas eu considero restrições em iniciar/parar/instalar/remover componentes do sistema, etc. invadindo minha propriedade pelo fornecedor, e fazer com meus sistemas como achar melhor.
Se você se encontrar em uma situação em que vê a remoção de
polkit
como a opção mais apropriada e os construtores de distro não forneceram o método "suportado" para isso, você pode pesquisarpolkitd
e renomear o arquivo e emitir o serviço comando de parada.No meu caso particular,
polkit
tende a fixar um núcleo da CPU quando não preciso disso, e o removi, usando o método acima. Você é bem-vindo e poder para os usuários!