Como evito que o PolicyKit solicite uma senha?

22

Durante anos, tive o seguinte no meu arquivo sudoers :

scott   ALL=NOPASSWD: ALL

Para quem não sabe, isso impede que sudo e amigos ( gksudo , etc.) peçam uma senha. No entanto, com o passar dos anos, mais e mais coisas que usaram sudo foram alteradas para o uso do PolicyKit.

Estou procurando uma configuração equivalente para o PolicyKit, de modo que ele nunca me peça a minha senha.

Para quem não gosta da minha solicitação, deixe-me dizer: Entendo os motivos da configuração padrão e eles são sólidos. Também entendo os riscos inerentes à configuração que quero fazer. No entanto, é assim que eu quero configurar meu sistema. Aqueles que não entendem completamente o que foi dito acima não devem tentar o que estou tentando.

    
por Scott Severance 24.01.2012 / 07:02

3 respostas

14

Isso não é inteiramente verdade. Você pode enganar o PolicyKit e suprimir todos os prompts de senha, substituindo a ação por um curinga.

EXCLUSÃO DE RESPONSABILIDADE: O texto a seguir suprime TODOS os prompts de senha globalmente para todos que pertencem ao grupo de administradores, com exceção da tela de login. É EXTREMAMENTE perigoso e NUNCA deve ser implementado porque as chances são de VOCÊ IRÁ ACABAR SEU SISTEMA !!

Não diga que você não foi avisado!

NOTA: Se você estiver executando 12.04 ou posterior, substitua "admin" por "sudo"!

Substitua "username" pelo seu nome de usuário atual:

usermod -aG admin username

Mudar para a raiz:

sudo -i

Crie uma nova política:

gedit /var/lib/polkit-1/localauthority/50-local.d/disable-passwords.pkla

Adicione o seguinte:

[Do anything you want]
Identity=unix-group:admin
Action=*
ResultActive=yes

Salvar, sair e reinicializar. Então vá tentar algo que normalmente requer uma senha. :)

NOTA: Não importa o que você usa como seu nome de arquivo .pkla. Você pode nomear o que quiser. MAS, importa que você use uma política legítima. É por isso que eu fui com "Install package file". Você não precisa necessariamente ir com o que eu fiz, contanto que esteja na lista de políticas que o Ubuntu reconhece.

E, por último, essa é a ÚNICA política necessária quando se trata de suprimir os prompts de senha porque, novamente, ela faz isso globalmente.

    
por user55572 19.04.2012 / 00:09
7

Você pode criar um .pkla, seja um tudo em um ou um casal baseado em grupos de ação, realmente não importa.

Para olhar de referência em / usr / share / polkit-1 / actions, abra os interessados ​​em um editor de texto para obter os IDs de ação.

Tanto quanto um .pkla ou 2 eu encontrar o melhor lugar para colocá-los aqui, ele estará protegido de qualquer atualização

/var/lib/polkit-1/localauthority/50-local.d

Então, por exemplo, aqui está o meu principal, chamado package-manager.pkla, embora ele se estenda um pouco mais além do que apenas a política de gerenciamento de pacotes

[Install package file]
Identity=unix-group:admin
Action=org.debian.apt.install-file;org.debian.apt.update-cache;org.debian.apt.install-or-remove-packages;org.debian.apt.upgrade-packages
ResultActive=yes

[Install package synaptic]
Identity=unix-group:admin
Action=com.ubuntu.pkexec.synaptic
ResultActive=yes

[Change add repo]
Identity=unix-group:admin
Action=com.ubuntu.softwareproperties.applychanges;org.debian.apt.change-repository
ResultActive=yes

[usbcreator format]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.format
ResultActive=yes

[Install bootloader]
Identity=unix-group:admin
Action=com.ubuntu.usbcreator.bootloader
ResultActive=yes

[Add users]
Identity=unix-group:admin
Action=org.freedesktop.accounts.user-administration
ResultActive=yes

Note que a partir de 12.04 o grupo usado para o usuário "admin" deve ser alterado para sudo, ie.

Identity=unix-group:sudo

Observe também que as ações podem ser agrupadas por seção, sem espaços, use a; entre id's

    
por doug 24.01.2012 / 09:08
1

Uma opção, se você sabe o que está fazendo, é desativar completamente o kit de políticas.

sudo apt-get remove libpolkit-agent-1-0

    
por viksit 08.06.2017 / 11:04