Como evito que o virt-manager solicite a senha root?


18

Ao iniciar o virt-manager, ele solicita a senha root.

Parece que o virt-manager faz com que o daemon libvirtd execute o pkcheck com alguns argumentos, que mostram esse diálogo de autenticação. Portanto, é o PolicyKit quem está pedindo a senha do root.

O site oficial (libvirt.org) descreve como definir uma regra do PolicyKit para se livrar do prompt de senha:

$ sudo cat /etc/polkit-1/localauthority/50-local.d/50-org.example-libvirt-remote-access.pkla
[libvirt Management Access]
Identity=unix-group:libvirt
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes

O subdiretório "autoridade local" não existia. Criá-lo e colocar um arquivo com esse nome e conteúdo (libvirt -> nome do meu grupo) não parece ter efeito algum. Além disso, há um arquivo padrão, que usa a sintaxe JavaScript:

/etc/polkit-1/rules.d/50-default.rules

Este pacote está instalado no sistema, além de algumas interfaces de DE:

polkit-0.107-4.fc18.x86_64

Aparentemente, o exemplo de configuração no libvirt.org está desatualizado?

Qual configuração é necessária para se livrar do prompt de senha (para um grupo de usuários específico)?

Respostas:


16

/etc/polkit-1/rules.d/10.virt.rules:

polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage"
            && subject.local
            && subject.active
            && subject.isInGroup("libvirt")) {
        return polkit.Result.YES;
    }
});

Você precisará executar etapas comuns, incluindo reiniciar o kit de políticas e iniciar uma nova sessão com o respectivo usuário após adicioná-lo ao libvirtgrupo.

Parece que o recurso é sobre o Fedora 18, mas ele já usa a sintaxe javascript, então provavelmente é válido também para o Fedora 19.

Ligações:


11
Esta solução funciona! Obrigado pelos links também. Recompensa concedida.
Senorsmile 15/10

Desculpe pela formatação errada, corrigi-lo.
Pavel Šimerda

Como isso se compara à adição do usuário ao grupo libvirt? Testei a adição do usuário ao grupo libvirt e, em seguida, a autenticação adicional não foi necessária.
precisa saber é o seguinte

11
@jwbensley A maneira polkit é dinâmica e concede as permissões ao proprietário da sessão local ativa. A maneira do grupo é estática e concede o privilégio a esse usuário específico. Escolha seus caminhos como achar melhor.
Pavel Šimerda 7/03/2017

1

O prompt de senha foi feito para segurança do sistema; portanto, se você fizer isso, poderá ficar vulnerável.

  1. Crie o Groupgrupo em sua máquina. ou você pode executar este "sudo groupadd -r Group"

  2. Você pode qualquer usuário que você queira para este grupo de sistemas executando "sudo usermod -a -G Group User"

  3. Agora você precisa criar nossa política PolicyKit que permitirá que os usuários Groupexecutem virt-manager

você criará um arquivo neste caminho: "/ etc / polkit-1 / localauthority / 50-local.d / 50-org. Group-libvirt-local-access.pkla"
e você colocará linhas abaixo nele

[Permitir Grouppermissões de gerenciamento de libvirt de grupo ]
Identity = unix-group: Group
Action = org.libvirt.unix.manage
ResultAny = yes
ResultInactive = yes
ResultActive = yes

É tudo o que você precisa fazer agora e pode executá-lo. E espero que isso ajude você.


Esta é a solução antiga. Esta solução NÃO funciona em sistemas operacionais Linux baseados em sistemas mais recentes, como o Fedora 19 ou o Current Arch. (Acabei de testar. Não há nem um diretório de autoridade local e, a criação da subpasta e do arquivo especificado não faz nada).
senorsmile

@senorsmile Você registrou um bug no Fedora 19?
Pavel Šimerda 15/10
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.