TL; DR: Tente instalar o policykit-1
e policykit-1-gnome
pacotes.
Você provavelmente precisa do polkit (também conhecido como PolicyKit).
A maioria dos utilitários gráficos de administração de sistemas no Ubuntu, incluindo o Centro de Software, geralmente pode ser executada sem sudo
ou algo parecido. Você apenas os executa da mesma maneira que executaria qualquer programa.
Quando chega a hora de executar uma tarefa que requer privilégios de root, eles usam o polkit para executar as ações necessárias. O polkit é um mecanismo separado do sudo, para permitir que os administradores executem ações como raiz. Ele está instalado nos 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 software-center
, pois não solicitará a autenticação nesse momento, mas quando você solicitar a instalação ou remoção do software, solicitará (graficamente) a autenticação.
Parece a partir da sua descrição que seu sistema foi iniciado como um sistema Ubuntu Server sem GUI e, em seguida, você instalou uma GUI. Provavelmente, os pacotes policykit-1 e policykit-1-gnome não foram instalados. Se você instalar o, o polkit provavelmente começará a trabalhar para o Software Center e outros utilitários.
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 o ambiente de desktop que você instalou.)
Se você deseja um sistema de desktop Ubuntu totalmente funcional, recomendo instalar o metapacote para qualquer "sabor" do Ubuntu em que você queira transformar seu sistema. Basicamente, se você deseja um sistema desktop Ubuntu normal, 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 vem com a instalação de uma GUI mais mínima no sistema do servidor. Por outro lado, se você preferir uma GUI mais mínima, poderá instalar esses pacotes polkit.
Para mais informações, consulte Como você executa o Ubuntu Server com uma GUI?
sudo
com autenticação gráfica.
Se você realmente precisa executar comandos como root, mas obtém uma caixa de diálogo de autenticação gráfica, o que procura é gksudo
( ougksu
). Isso é fornecido pelo pacote gksu . É 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 sudo
.
Você pode correr gksudo
de um terminal, mas não precisa. Você pode executá-lo na caixa de diálogo Alt+ F2(comando de execução) ou colocá-lo na Exec=
linha de um .desktop
arquivo (ou em qualquer outra maneira de executar programas gráficos).
Observe que você deve considerar o uso gksudo
para executar aplicativos gráficos como raiz, mesmo quando os estiver executando a partir de um terminal, porque comandos como sudo ...
where ...
é um aplicativo gráfico podem realmente quebrar as configurações por aplicativo dos usuários não raiz que os executam. (Felizmente, isso é corrigível.) sudo gedit
É particularmente notório.
Para obter mais informações sobre o problema com sudo
aplicativos gráficos e o que fazer, consulte:
Há também uma maneira gráfica baseada em polkit ... para comandos não gráficos.
gksudo
funciona bem para executar programas gráficos e não gráficos. Você provavelmente deveria usar isso.
Mas uma alternativa, usar o polkit em vez de sudo
trabalhar apenas para programas não gráficos , é pkexec
.
Por exemplo, se você executar pkexec touch /root/foo.txt
, será solicitado um diálogo gráfico de autenticação e, se a autenticação for bem-sucedida, touch /root/foo.txt
será executada, criando ( ou atualizando ) foo.txt
a /root
pasta.
pkexec
usará uma caixa de diálogo não gráfica, exigindo um terminal, caso não possa criar uma caixa de diálogo gráfica. Mas é improvável que isso aconteça se você o estiver executando através de um recurso fornecido pelo seu shell gráfico ou ambiente de desktop.
- Por que
pkexec
funciona apenas para programas não gráficos? Na verdade, ele também executa programas gráficos, mas apenas se o polkit tiver sido especialmente configurado para permitir isso - o que geralmente não é feito. Veja man pkexec
(e a versão upstream, com capturas de tela ), esta resposta e essa resposta para alguns detalhes, se você estiver interessado.
sudo
x polkit (alguns detalhes técnicos, apenas se você estiver interessado)
Um novo gksu
/ gksudo
usará o polkit em vez de sudo
fazer seu trabalho , embora esta versão não tenha sido amplamente adotada. Convido principalmente a recomendar o README
arquivo em seu código fonte (escrito por Gustavo Noronha Silva), o que explica as diferenças importantes entre sudo
e polkit. Para citar brevemente:
O PolicyKit resolve o problema de um aplicativo que precisa de privilégios mais altos, fornecendo facilidades para permitir que os usuários se autentiquem e para aplicativos para verificar informações de autenticação e autorização. O aplicativo deve ser estruturado de forma que toda operação privilegiada seja realizada por um serviço D-Bus pequeno (de preferência) pequeno, comandado pelo código não privilegiado. Todas as "ações" executadas precisam de autorização adequada, que é tratada pelo Policykit.
4. Por que manter o gksu?
Portanto, isso essencialmente torna o gksu desnecessário, pois os aplicativos não precisam mais ser executados como um usuário privilegiado e a autenticação do usuário é feita pelo agente de autenticação do PolicyKit. Mas os aplicativos precisam ser refatorados para adotar essa nova estrutura, e há alguns casos em que o que você deseja é realmente algo que executa programas como raiz.
Essas questões estão subjacentes à situação em que acredito que você esteja:
- O Software Center foi projetado para usar o polkit para elevação de privilégios, para que apenas ações específicas precisem ser executadas como raiz. Para isso, ele precisa do polkit, que estava ausente (ou quebrado) no seu sistema.
- Como ele foi projetado para usar o polkit, não há iniciador pré-fabricado para iniciar o Software Center como raiz. O polkit evita a necessidade de executar ferramentas gráficas de administração como root, na maioria das vezes.
- Mas, às vezes, você realmente precisa executar um programa gráfico como root. Nesse caso, você pode usar
gksu
/ gksudo
.
(... O que pode eventualmente usar o polkit nos bastidores - mas o gksudo
atualmente no Ubuntu é o tradicional que usa sudo
).
gksu
foi preterido e deixou cair a partir do Ubuntu 18.04Uma maneira conveniente é criar um
.desktop
arquivo dedicado ou adicionar seus comandos a um existente, solicitando sua senha via GUI (gksu). No exemplo abaixo, adiciono o comando para executar o Gedit e o Software Center com privilégios de sudo no iniciador do Gedit. Você precisará tergksu
instalado para usar esta configuração:sudo apt-get install gksu
Copie o Gedit
.desktop file in
/ usr / share / applications /to
~ / .local / share / applications`:e abra-o para edição (arraste-o para uma janela aberta do gedit)
Procure a linha: Actions = Window; Document;
Adicione os nomes dos seus comandos à linha (esses não são os nomes que você verá na sua interface, usados apenas para referência interna no arquivo)
Adicione as seções correspondentes na parte inferior do arquivo:
Feche o arquivo e arraste-o para o iniciador
Agora você pode executar o gedit e o Software Center com privilégios de sudo:
fonte
gksu
/gksudo
. Portanto, sua resposta é boa e necessária! Só espero que o OP também instale / conserte o polkit, pois acho que isso fará com que o SO funcione da maneira que eles querem.