Como posso definir o Centro de Software para permitir que usuários não root instalem itens dos repositórios do Ubuntu sem precisar digitar sua senha?
Estou plenamente ciente das implicações de segurança e estou disposto a correr o risco. O Fedora 12 vem com algo assim. (Ao modificar a configuração do PolicyKit, acredito)
Você pode modificar as permissões do PolicyKit para permitir que os usuários acessem o back-end aptdaemon que o Centro de Software usa.
dpkg --listfiles aptdaemon
mostra que/usr/share/polkit-1/actions/org.debian.apt.policy
é o arquivo que especifica as ações possíveis no backend do aptdaemon.Olhando nesse arquivo, as
< action id="">
tags especificam as ações possíveis. Você provavelmente desejaorg.debian.apt.install-packages
permitir que os usuários instalem novos pacotes do arquivo eorg.debian.apt.update-cache
permitir que os usuários atualizem as listas de pacotes.Veja
man pklocalauthority
quais documentos como definir permissões locais em ações do PolicyKit. Colocar o seguinte em/etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla
permitirá que qualquer usuário conectado à máquina local instale pacotes depois de digitar sua própria senha (mesmo quando não estiver no grupo admin) e atualizar o cache do pacote sem digitar nenhuma senha.Não acho que atualmente seja possível fazer isso por meio da GUI, mas o seguinte deve funcionar, embora seja um pouco complicado. YMMV.
Adicione a seguinte linha a /etc/sudoers (use
sudo visudo
para editar o arquivo):Então você só precisa criar e adicionar os usuários específicos ao
packageinstallers
grupo:Agora
jdoe
pode fazer o seguinte:e você pode editar o item de menu da área de trabalho para o Centro de Software para que ele chame ao
software-center
preceder o comando comgksudo
.O PolicyKit pode permitir que você faça isso sem sudo, mas está além do meu entendimento neste momento.
A resposta do RAOF se aplica apenas ao Ubuntu. Kubuntu usa QAptWorker como back-end (observado para Natty e Oneiric). Para permitir instalações não raiz, crie
/etc/polkit-1/localauthority/50-local.d/10-allow-non-root-install-packages.pkla
contendo:Eu queria permitir que alguns usuários não administradores instalassem software sem conceder acesso sudo diretamente. Isso foi feito inserindo as próximas linhas em ambos os grupos de configuração:
Se houver um grupo que deve receber permissão, use
unix-group
em vez deunix-user
.Se você precisar apenas de uma permissão genérica para permitir/proibir a instalação do pacote, vá para PolicyKit.
Infelizmente, o PolicyKit não tem controle preciso sobre o pacote a ser instalado. Se você quiser dar aos seus usuários permissão para instalar apenas um conjunto restrito de aplicativos, você deve usar
sudo
e instalar algo como softwarechannels...Também procurei algo parecido, mas como não encontrei nada, codifiquei esta solução fácil "softwarechannels", disponível aqui no GitHub
É um sistema muito simples para permitir que usuários comuns (não administradores) instalem pacotes de catálogos restritos.
Apenas defina 'canais' (grupos de pacotes) em um arquivo de texto simples e dê a seus usuários permissões para lançar softwarechannels.
Eles verão apenas pacotes em canais que correspondam aos seus grupos unix.
Para fazer isso funcionar no meu Ubuntu 18.04, tive que alterar o arquivo /etc/polkit-1/localauthority/50-local.d/10-allow-users-to-install.pkla para:
Além disso, com a última regra, permito que todos no grupo adm instalem/remover sem qualquer senha.