TL; DR: Tente instalar os pacotes policykit-1
e policykit-1-gnome
.
Você provavelmente precisará do polkit (a.k.a. PolicyKit).
A maioria dos utilitários de administração de sistemas gráficos no Ubuntu, incluindo o Centro de Software, geralmente pode ser executada sem sudo
ou qualquer coisa parecida com isso. Você acabou de executá-los da mesma maneira que você executaria qualquer programa.
Quando chega a hora de executar uma tarefa que exige privilégios de root, eles usam o polkit para realizar as ações necessárias. O polkit é um mecanismo separado do sudo, para permitir que os administradores executem ações como root. Ele é instalado em sistemas Ubuntu de desktop, mas por padrão não faz parte das instalações do Ubuntu Server.
Portanto, o comportamento normal do Centro de Software é que você pode invocá-lo simplesmente comosoftware-center
, ele não solicitará a autenticação nesse momento, mas, quando for solicitado a instalar ou remover o software, ele será avisado (graficamente) para autenticar.
Soa a partir da sua descrição, como o seu sistema começou como um sistema Ubuntu Server sem GUI, e então você instalou uma GUI. Provavelmente o policykit-1 e policykit-1-gnome os pacotes não foram instalados. Se você instalar o, o polkit provavelmente começará a trabalhar no Software Center e em outros utilitários desse tipo.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Então você deve ser capaz de executar:
software-center
(Ou selecione o Centro de Software graficamente conforme previsto pelo ambiente de área de trabalho que você instalou.)
Se você quer um sistema de desktop Ubuntu totalmente funcional, eu recomendo instalar o metapacote para qualquer "sabor" do Ubuntu no qual você quer transformar seu sistema. Basicamente, se você quer um sistema desktop Ubuntu comum, instale o ubuntu-desktop .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Isso deve preencher as várias lacunas, como não ter o polkit, que vêm com a instalação de uma GUI mais minimal no seu sistema de servidor. Por outro lado, se você preferir uma GUI mais minimalista, basta instalar esses pacotes do polkit.
Para mais informações, consulte Como você roda o Ubuntu Server? com uma GUI?
sudo
com autenticação gráfica.
Se você realmente precisa executar comandos como root mas obter uma caixa de diálogo de autenticação gráfica, o que você está procurando é gksudo
( ou gksu
). Isso é fornecido pelo gksu pacote. É uma interface gráfica para sudo
.
Normalmente, gksudo
é usado para executar aplicativos gráficos como raiz (ou algum outro usuário além do usuário que os inicia). Mas você também pode usá-lo para executar comandos não gráficos - desde que os comandos possam ser executados com sudo
.
Você pode executar gksudo
de um terminal, mas não é necessário. Você pode executá-lo a partir do diálogo Alt + F2 (executar comando) ou colocá-lo na linha Exec=
de um arquivo .desktop
(ou qualquer uma das outras formas você executa programas gráficos).
Observe que você deve usar gksudo
para executar aplicativos gráficos como root, mesmo quando estiver executando-os a partir de um terminal, pois comandos como sudo ...
onde ...
é um aplicativo gráfico podem realmente quebrar as configurações por aplicativo dos usuários não-root que os executam. (Felizmente isso é solucionável).% Co_de% é particularmente notório.
Para mais informações sobre o problema com sudo gedit
para aplicativos gráficos e o que fazer, consulte:
- Por que os usuários nunca devem usar o sudo normal iniciar aplicativos gráficos?
- RootSudo no wiki de ajuda do Ubuntu
-
sudo
para as opçõesman sudo
e-H
.-i
esudo -H ...
não autenticam graficamente, mas comosudo -i ...
eles não têm problemas degksudo ...
.
Há também uma maneira gráfica baseada em polkit ... para comandos não-gráficos.
sudo ...
funciona bem para executar programas gráficos e não gráficos. Você provavelmente deveria usar isso.
Mas uma alternativa, usando o polkit em vez de gksudo
e trabalhando apenas para programas não-gráficos , é sudo
.
Por exemplo, se você executar pkexec
, você receberá uma caixa de diálogo de autenticação gráfica e, se a autenticação for bem-sucedida, pkexec touch /root/foo.txt
será executado, criando ( ou refrescante ) touch /root/foo.txt
na pasta foo.txt
.
-
/root
usará um diálogo não gráfico, exigindo um terminal, no caso de não poder criar um diálogo gráfico. Mas é improvável que isso aconteça se você o estiver executando por meio de um recurso fornecido pelo shell gráfico ou ambiente de área de trabalho. - Por que o
pkexec
funciona somente para programas gráficos que não são? Na verdade, ele também executa programas gráficos, mas somente se o polkit tiver sido configurado especialmente para permitir isso - o que geralmente não é feito. Vejapkexec
(e esta resposta e essa resposta para alguns detalhes, se você estiver interessado.
man pkexec
vs. polkit (alguns detalhes técnicos, somente se você estiver interessado)
Um novo sudo
/ gksu
usará o polkit em vez de gksudo
para fazer seu trabalho , embora esta versão não tenha sido amplamente adotada. Eu sugiro principalmente que ele the% arquivo co_de% em seu código-fonte (escrito por Gustavo Noronha Silva), que explica as diferenças importantes entre sudo
e polkit. Para citar brevemente:
O PolicyKit resolve o problema de um aplicativo que precisa de mais privilégios, fornecendo facilidades para permitir que os usuários autentiquem eles próprios e, para aplicações, verificar a autenticação e informações de autorização. O aplicativo deve ser estruturado em um maneira que toda operação privilegiada é feita por um (de preferência) pequeno Serviço D-Bus, que é comandado pelo código não privilegiado. Todos "ações" que são executadas precisam de autorização apropriada, que é manipulados por meio do Policykit.
4. Por que manter o gksu?
Então, isso essencialmente torna o gksu desnecessário, já que os aplicativos não mais precisa ser executado como um usuário privilegiado, e a autenticação do usuário é feito pelo agente de autenticação do PolicyKit. Mas as aplicações precisam ser refatoradas adotar essa nova estrutura, e há alguns casos em que você quer é realmente algo que executa programas como root.
Esses problemas estão por trás da situação em que acredito que você esteja:
- A Central de Software foi projetada para usar o polkit para elevação de privilégio, para que apenas ações específicas precisem ser executadas como raiz. Para isso, precisa do polkit, que estava faltando (ou quebrado) no seu sistema.
- Como ele foi projetado para usar o polkit, não há um lançador pré-fabricado para iniciar o Centro de Software como raiz. O polkit elimina a necessidade de executar ferramentas de administração gráfica como root, na maioria das vezes.
- Mas às vezes você realmente precisa executar um programa gráfico como root. Nesse caso, você pode usar
README
/sudo
.
(... O que pode eventualmente usar o polkit nos bastidores - mas ogksu
atualmente no Ubuntu é o tradicional que usagksudo
).