Come ottenere la password della password sudo GUI senza riga di comando?


10

Attualmente, per tutti i miei comandi che richiedono l'accesso come root, devo scriverli su una riga di comando.

Vorrei che la GUI mi chiedesse di digitare la mia password, quando è richiesto sudo, invece di dover digitare i comandi dalla riga di comando.

C'è un modo per abilitare questo? In precedenza, una versione del desktop Ubuntu aveva questa funzionalità pronta all'uso.

Questa versione di Ubuntu (che sto attualmente eseguendo) ho aggiornato da un'installazione del server.

Aggiungerò, il mio account utente è già stato aggiunto al gruppo sudo. Quindi posso eseguire comandi come sudo gedito sudo apt-getma non sono in grado di installare software in Ubuntu Software Center.

Risposte:


10

TL; DR: prova a installare i pacchetti policykit-1e 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 sudoo 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-1Installa policykit-1 e policykit-1-gnomeInstalla 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-desktopInstalla 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 gksuInstalla gksu . È un frontend grafico per sudo.

In genere gksudoviene 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 gksudoda un terminale ma non è necessario. Puoi eseguirlo dalla finestra di dialogo Alt+ F2(comando di esecuzione) o inserirlo nella Exec=riga di un .desktopfile (o in uno qualsiasi degli altri modi in cui esegui programmi grafici).

Nota che dovresti considerare l'uso gksudoper 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 sudoper le applicazioni grafiche e cosa fare, vedere:

C'è anche un modo grafico basato su polkit ... per comandi non grafici.

gksudofunziona bene per l'esecuzione di programmi sia grafici che non grafici. Probabilmente dovresti usarlo.

Ma un'alternativa, usando polkit invece di sudoe 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.txtviene eseguita, creando ( o aggiornando ) foo.txtnella /rootcartella.

  • pkexecutilizzerà 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é pkexecfunziona 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.

sudovs. polkit (alcuni dettagli tecnici, solo se sei interessato)

Un nuovo gksu/ gksudoutilizzerà polkit invece di sudofare il suo lavoro , sebbene questa versione non sia stata ampiamente adottata. Lo prendo principalmente per raccomandare il READMEfile nel suo codice sorgente (scritto da Gustavo Noronha Silva), che spiega le importanti differenze tra sudoe 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 gksudoattualmente in Ubuntu è quello tradizionale che usa sudo).

1
Ciao Eliah, sì, era un server senza GUI e stavo solo provando la GUI di Ubuntu, ho eseguito il comando sudo apt-get install ubuntu-desktop non sono sicuro che il kit di politiche sia installato. Proverò comunque a installarlo. Attualmente aggiornato dal 12.04 al 14.04.
Sean,

Ho riscontrato una situazione in cui ho un'applicazione GUI che voglio eseguire normalmente (non root), ma deve solo leggere da una porta seriale di proprietà di root. L'incapacità di concedere a questo programma un solo privilegio è davvero fastidiosa (in altre parole, voglio un sistema di funzionalità full object).
CMCDragonkai,

3
Per favore, non è gksustato deprecato e abbandonato da Ubuntu 18.04
Nathan F.

5

Un modo conveniente è creare un .desktopfile dedicato o aggiungere i tuoi comandi a uno esistente, chiedendo la tua password tramite GUI (gksu). Nell'esempio seguente, aggiungo il comando per eseguire Gedit e Software Center con i privilegi di sudo nel programma di avvio di Gedit. Sarà necessario aver gksuinstallato per utilizzare questa configurazione:sudo apt-get install gksu

  1. Copia Gedit .desktop file in/ usr / share / applicazioni / to~ / .local / share / applicazioni`:

    cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
    

    e aprilo per la modifica (trascinalo su una finestra aperta di gedit)

  2. Cerca la riga: Actions = Window; Document;

  3. Aggiungi i nomi dei tuoi comandi alla linea (questi non sono i nomi che vedrai nella tua interfaccia, usati solo come riferimento interno nel file)

    Actions=Window;Document;gedit;Ubuntu Software Center;
    
  4. Aggiungi le sezioni corrispondenti nella parte inferiore del file:

    [Desktop Action gedit]
    Name=Gedit  (with gksu)
    Exec=gksudo gedit
    OnlyShowIn=Unity;
    
    [Desktop Action Ubuntu Software Center]
    Name=Ubuntu Software Center (with gksu)
    Exec=gksudo /usr/bin/software-center
    OnlyShowIn=Unity;
    
  5. Chiudi il file e trascinalo sul programma di avvio

Ora puoi eseguire gedit e Software Center con i privilegi di sudo:

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Infatti. Non ho obiezioni. Il motivo per cui ho commentato USC è che una parte importante della domanda riguarda il modo in cui l'OP può far funzionare il loro sistema creato dall'installazione di un server come un normale sistema desktop Ubuntu rispetto all'autenticazione grafica per attività amministrative. La mia risposta si concentra su questo e spiega graficamente le generalità dei programmi in esecuzione. Nel fare ciò, salta la meccanica di gksu/ gksudo. Quindi la tua risposta è sia buona che necessaria! Spero solo che l'OP installi / risolva anche polkit, poiché penso che farà funzionare il sistema operativo come vogliono.
Eliah Kagan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.