Ativando privilégios de gerenciamento do sistema para usuários não locais - Como funciona o 'polkit'?

7

Estou gerenciando remotamente um servidor CentOS 6.2 usando X sobre SSH (na verdade, NX, mas isso é apenas um proxy).

O The Everything está funcionando corretamente, exceto quando tento executar tarefas que normalmente exigem permissões administrativas (como coisas em palimpsest ou qualquer outra ferramenta da GUI).

Quando tento fazer coisas que disparariam uma caixa de diálogo de autenticação (por meio de polkit-gnome ), a caixa de diálogo de permissões está falhando silenciosamente e o software está sendo executado como minha conta de usuário, em vez de root.

Para esclarecer, se eu alterar as configurações do pacote usando o gerenciador de pacotes no console local, recebo um pop-up - "A autenticação é necessária para (adicionar / remover) pacotes".

Se eu fizer isso remotamente, a autenticação falhará e eu receberei uma caixa de diálogo "Falha na Autorização".

Parece reduzir-se à configuração do policykit, mas segui as páginas de manual do polkit e editei minha configuração, e isso não mudou nada.

Eu posso gerenciar pacotes / coisas super-usuário na linha de comando sem problemas. No entanto, sou muito visualmente orientado e prefiro muito mais uma GUI, quando possível.

Ok, parece que preciso adicionar uma nova regra ao policykit.

Saindo das páginas man, criei um arquivo (denominado 20-remote-admin-allow.pkla ) e coloquei em /etc/polkit-1/localauthority/50-local.d/ . Como parece haver vários diretórios de configuração do polkit, copiei o mesmo arquivo em /var/lib/polkit-1/localauthority/50-local.d/ .

Não parece ter mudado nada.

Aqui está o meu arquivo de configuração, como mencionado acima:

[root@cloaica zul]# cat /var/lib/polkit-1/localauthority/50-local.d/10-remote-admin-allow.pkla 
[Let remote users do admin stuff]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_self_keep

[root@cloaica zul]# cat /etc/polkit-1/localauthority/50-local.d/20-remote-admin-allow.pkla 
[Allow Remote Administraton]
Identity=unix-user:zul
Action=*
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_admin
[root@cloaica zul]# 

pkaction --verbose ainda relata

implicit any:      no
implicit inactive: no

para a maioria das ações, e as ações mencionadas falharão se eu as tentar, com a caixa de diálogo "Autenticação falhada", conforme mencionado acima.

Sério, alguém realmente entende como o polkit realmente funciona?

O Policykit parece ser um pesadelo contínuo, e considerando que costumava haver uma ferramenta de configuração da GUI e foi removido , não entendo como alguém achou que isso era pronto para ser lançado em um sistema operacional de produção.

Para ficar claro, gosto de ter os diálogos "por favor autentique para executar esta ação". Eu só quero realmente tê-los , em vez de ter o sistema silenciosamente não autenticar.

Eu não quero remover a totalidade do polkit, apenas pense que todas as sessões estão ativas, ou que as sessões inativas obtêm as mesmas permissões que as sessões ativas.

    
por Fake Name 25.12.2011 / 12:26

3 respostas

1

Não é possível afirmar com certeza que você está tendo exatamente o mesmo problema, mas isso está listado como bug do fedora , a partir de novembro de 2011. Instalei um CentOS 6 limpo, atualizei todos os pacotes e, em seguida, tive o mesmo problema ao tentar acessar remotamente e adicionar um novo pacote (algo que requer autenticação).

    
por 09.01.2012 / 23:40
0

Tente este:

[Remote Admin SSH access] 
Identity=unix-group:users
Action=*
ResultAny=yes
ResultInactive=yes
ResultActive=yes

Depois disso, adicione o usuário ao grupo de usuários. Você vê algum problema de segurança com essa configuração?

    
por 29.03.2012 / 18:28
0

Oi eu tenho problemas com isso também. Especificamente com o udisk.

(Estou executando o desktop do Ubuntu 14.04)

Para corrigir os udisks, fiz isso.

  1. Backup e edição

    sudo vi /usr/share/polkit-1/actions/org.freedesktop.udisks.policy

  2. procure por todos:

    <allow_active>yes</allow_active>

    e, em seguida, altere o:

    <allow_any>no</allow_any>

para:

   '<allow_any>yes</allow_any>'

isto permite acesso remoto em vez de apenas local apenas

    
por 05.08.2015 / 11:15