Existe uma maneira de tornar o agente polkit padrão para o usuário conectado no momento?

Existe uma maneira de tornar o agente polkit padrão para o usuário conectado no momento?

Alguém sabe como configurar o polkit-gnome-authentication-agent-1 para o padrão do usuário atual inicialmente ao lidar com uma solicitação ou, alternativamente, se um dos outros agentes do polkit tiver essa capacidade?


Ao autenticar para executar uma ação polkit com um agente como polkit-gnome-authentication-agent-1, como tenho vários usuários no wheelgrupo, recebo um menu suspenso para selecionar com qual usuário autenticar.

Esta é uma etapa extra irritante, quando na maioria dos casos o usuário com o qual desejo me autenticar é o usuário conectado no momento *. Meu comportamento preferido é que o usuário conectado no momento seja pré-selecionado e eu seja levado diretamente para a entrada da senha, com a opção de mudar para outro usuário, se desejar.

Estou ciente de que é possível restringir os usuários que aparecem na lista por meio de regras do polkit, mas minha compreensão ingênua dessas regras é que elas mudam quem épermitidopara autenticar certas ações e que esse comportamento está no domínio do agente GUI polkit. Ou estou errado e a seleção padrão é algo que pode ser definido por meio de regras do polkit?

ReiterarNão desejo alterar quais usuários/grupos têm permissão para autenticar para executar ações do polkit, mas apenas tornar a interface do usuário um pouco mais rápida para percorrer com o mínimo de pressionamentos de tecla e definitivamente sem roedores.

* Reconheço plenamente que este pode ser o comportamento mais sensato para a maioria das implantações, mas para mim é estranho.

Responder1

A maneira como consegui resolver esse problema foi adicionando um arquivo personalizado /etc/polkit-1/rules.d/nomeado 00-custom.rulescom as seguintes linhas, para substituir 50-default.rules:

polkit.addAdminRule(function(action, subject) {
    if( subject.isInGroup("wheel") ) {
        return ["unix-user:"+subject.user];
    }
    else {
        return [polkit.Result.NO];
    }
});

wheelDesta forma , será solicitada ao usuário atual, se presente no grupo, sua senha, caso contrário, a senha root.

informação relacionada