TL; DR: prova a installare i pacchetti policykit-1
e policykit-1-gnome
.
Probabilmente hai bisogno di polkit (aka PolicyKit).
La maggior parte delle utility grafiche per l'amministrazione del sistema in Ubuntu, incluso il Software Center, di solito può essere eseguita senza sudo
o qualcosa del genere. Li esegui esattamente come faresti con qualsiasi programma.
Quando arriva il momento di eseguire un'attività che richiede i privilegi di root, usano polkit per eseguire le azioni richieste. polkit è un meccanismo separato da sudo, per consentire agli amministratori di eseguire azioni come root. È installato su sistemi Ubuntu desktop ma per impostazione predefinita non fa parte delle installazioni di Ubuntu Server.
Pertanto, il normale comportamento di Software Center è che puoi invocarlo semplicemente perché software-center
, in quel momento, non ti chiederà di autenticarti, ma quando gli dirai di installare o rimuovere software, ti chiederà (graficamente) di autenticarti.
Dalla tua descrizione sembra che il tuo sistema sia stato avviato come un sistema Ubuntu Server senza GUI, quindi hai installato una GUI. Probabilmente i pacchetti policykit-1 e policykit-1-gnome non sono stati installati. Se installi, polkit molto probabilmente inizierà a funzionare per Software Center e altre utilità di questo tipo.
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
Quindi dovresti essere in grado di eseguire solo:
software-center
(O selezionare il Software Center graficamente come previsto dall'ambiente desktop installato.)
Se desideri un sistema desktop Ubuntu completamente funzionale, ti consiglio di installare il metapacchetto per qualsiasi "sapore" di Ubuntu in cui vuoi trasformare il tuo sistema. Fondamentalmente, se si desidera un normale sistema desktop Ubuntu, installare Ubuntu-desktop .
sudo apt-get update
sudo apt-get install ubuntu-desktop
Questo dovrebbe riempire i vari vuoti, come non avere polkit, che derivano dall'installazione di una GUI più minimale sul tuo sistema server. D'altra parte, se preferisci una GUI più minimale, puoi semplicemente installare quei pacchetti polkit.
Per ulteriori informazioni, vedi Come si esegue Ubuntu Server con una GUI?
sudo
con autenticazione grafica.
Se hai davvero bisogno di eseguire i comandi come root ma ottenere una finestra di dialogo di autenticazione grafica, quello che stai cercando è gksudo
( ogksu
). Questo è fornito dal pacchetto gksu . È un frontend grafico per sudo
.
In genere gksudo
viene utilizzato per eseguire applicazioni grafiche come root (o qualche altro utente oltre all'utente che le avvia). Ma puoi anche usarlo per eseguire comandi non grafici, a condizione che i comandi possano essere eseguiti con sudo
.
Puoi correre gksudo
da un terminale ma non è necessario. Puoi eseguirlo dalla finestra di dialogo Alt+ F2(comando di esecuzione) o inserirlo nella Exec=
riga di un .desktop
file (o in uno qualsiasi degli altri modi in cui esegui programmi grafici).
Nota che dovresti considerare l'uso gksudo
per eseguire applicazioni grafiche come root anche quando le stai eseguendo da un terminale, perché comandi come sudo ...
dove si ...
trova un'applicazione grafica possono effettivamente interrompere le configurazioni per applicazione degli utenti non root che le eseguono. (Fortunatamente questo è risolvibile.) sudo gedit
È particolarmente noto.
Per ulteriori informazioni sul problema con sudo
per le applicazioni grafiche e cosa fare, vedere:
C'è anche un modo grafico basato su polkit ... per comandi non grafici.
gksudo
funziona bene per l'esecuzione di programmi sia grafici che non grafici. Probabilmente dovresti usarlo.
Ma un'alternativa, usando polkit invece di sudo
e funziona solo con programmi non grafici , è pkexec
.
Ad esempio, se esegui pkexec touch /root/foo.txt
, ti verrà chiesto con una finestra di dialogo di autenticazione grafica e se l'autenticazione ha esito positivo, touch /root/foo.txt
viene eseguita, creando ( o aggiornando ) foo.txt
nella /root
cartella.
pkexec
utilizzerà una finestra di dialogo non grafica, che richiede un terminale, nel caso in cui non sia possibile creare una finestra di dialogo grafica. Ma è improbabile che ciò accada se lo si esegue in una struttura fornita dalla shell grafica o dall'ambiente desktop.
- Perché
pkexec
funziona solo per programmi non grafici? In realtà esegue anche programmi grafici, ma solo se polkit è stato appositamente configurato per consentirlo, cosa che di solito non viene eseguita. Vedi man pkexec
(e la versione upstream, con schermate ), questa risposta e quella risposta per alcuni dettagli, se sei interessato.
sudo
vs. polkit (alcuni dettagli tecnici, solo se sei interessato)
Un nuovo gksu
/ gksudo
utilizzerà polkit invece di sudo
fare il suo lavoro , sebbene questa versione non sia stata ampiamente adottata. Lo prendo principalmente per raccomandare il README
file nel suo codice sorgente (scritto da Gustavo Noronha Silva), che spiega le importanti differenze tra sudo
e polkit. Per citare brevemente da esso:
PolicyKit risolve il problema di un'applicazione che necessita di privilegi più elevati fornendo funzionalità per consentire agli utenti di autenticarsi e per le applicazioni di verificare le informazioni di autenticazione e autorizzazione. L'applicazione deve essere strutturata in modo tale che tutte le operazioni privilegiate siano eseguite da un (preferibilmente) piccolo servizio D-Bus, che è comandato dal codice non privilegiato. Tutte le "azioni" che vengono eseguite richiedono un'autorizzazione adeguata, che viene gestita tramite Policykit.
4. Perché mantenere gksu?
Quindi, ciò rende sostanzialmente inutile gksu, poiché le applicazioni non devono più essere eseguite come utente privilegiato e l'autenticazione dell'utente viene eseguita dall'agente Auth di PolicyKit. Ma le applicazioni devono essere rifattorizzate per adottare questa nuova struttura e ci sono alcuni casi in cui ciò che si desidera è effettivamente qualcosa che esegue i programmi come root.
Questi problemi sono alla base della situazione in cui credo che tu sia:
- Software Center è progettato per utilizzare polkit per l'elevazione dei privilegi, pertanto è necessario eseguire come root solo azioni specifiche. Per questo, ha bisogno di polkit, che mancava (o si rompeva) sul tuo sistema.
- Poiché è progettato per utilizzare polkit, non esiste un launcher pre-creato per avviare il Software Center come root. polkit ovvia alla necessità di eseguire strumenti di amministrazione grafica come root, il più delle volte.
- Ma a volte è davvero necessario eseguire un programma grafico come root. In tal caso, è possibile utilizzare
gksu
/ gksudo
.
(... Che alla fine potrebbe usare polkit dietro le quinte - ma quello gksudo
attualmente in Ubuntu è quello tradizionale che usa sudo
).