Desejo impedir que os usuários iniciem o desligamento ou reinicialização quando outro usuário estiver conectado. Os usuários podem ser um usuário TTY (Ctrl+Alt+F3) ou um usuário ssh de um host cliente.
No OpenBSD, eu uso o polkit org.xfce.session.policy
com um arquivo de regras para prevenir tais ações.
Eu preciso descobrir como fazer isso no Debian Testing (também conhecido como Buster).
encontrei org.freedesktop.login1.policy
com ações
org.freedesktop.login1.power-off
org.freedesktop.login1.power-off-multiple-sessions
.
e criou arquivos de regras para essas ações, mas não bloqueia o desligamento ou a reinicialização.
Parece-me que o polkit não é o único responsável por essas ações.
Não sei onde procurar isso; talvez systemd ou PAM?
EDITAR
No OpenBSD e NetBSD, por padrão, ninguém tem permissão para desligar ou reiniciar a partir da GUI.
Você deve criar um arquivo de regras /usr/local/share/polkit-1/rules.d/
como este:
polkit.addRule (function (action, subject) {
if (action.id == "org.xfce.session.xfsm-shutdown-helper")
{
return polkit.Result.YES;
}
});
No Debian, por padrão, todos os usuários podem desligar ou reiniciar a partir da GUI.
Não há arquivo de regras para org.xfce.session.xfsm-shutdown-helper
ou org.freedesktop.login1.power-off
.
Eu tento adicionar meu arquivo de regras return polkit.Result.NO;
sem sucesso
No debian, eu uso lightdm
e no BSD, eu uso xdm
.
Debian Testing Buster usa polkit 1.05, então não há arquivos de regras e nenhuma sintaxe js.
Você deve usar o antigo estilo ini do policykit.
Para evitar que os usuários iniciem o desligamento ou reinicialização quando outro usuário estiver conectado,
você deve criar dois arquivos pkla em /etc/polkit-1/localauthority/50-local.d/
Mas não é suficiente, porque o xfce também instala uma ação para desligar ou reiniciar em /usr/share/polkit-1/actions/org.xfce.session.policy.
Você também deve criar um arquivo pkla para esta ação em /etc/polkit-1/localauthority/50-local.d/