sudo vs gksudo. differenza?


37

Qual è la differenza tra sudoe gksudo?


1
Buona domanda. Sto imparando Linux ora (puoi vedere che non ho ancora trovato il layout della mia tastiera) Haha!
r0ca,

Risposte:


27

sudochiede la password dalla riga di comando e gksudoapre una finestra di dialogo per essa.


6
gksu (do) ha anche una propria configurazione di quali variabili d'ambiente passare attraverso il figlio, separate da quelle di su (do). Ad esempio, se il tuo sudoers config specifica! Keep_env, la mancanza di $ DISPLAY potrebbe impedire l'esecuzione delle applicazioni grafiche, ma gksudo dovrebbe funzionare. Puoi trovare alcuni dettagli su git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… o live.gnome.org/gksu .
effimero

@ephemient Quindi, oltre al prompt grafico, sudo -Eequivale a gksudo?
isomorfismi,

3
la risposta qui sotto sembra di gran lunga superiore superuser.com/a/726249/112542
johny perché

4
Voglio sottolineare che questa non è affatto la differenza cruciale e questa risposta è abbastanza fuorviante per i neofiti. La differenza principale è spiegata qui: askubuntu.com/a/11766/81034 e la risposta di seguito (a cui @johnywhy è collegato) fa un passo in più per aggiungere qualche sfumatura a questo. Si prega di leggere la domanda di Askubuntu piuttosto che fare affidamento su questa risposta fuorviante.
Sundar - Ripristina Monica il

31

gksudoè un frontend GTK-based sudo(a proposito, kdesudoè un frontend Qt-based), tuttavia (per impostazione predefinita) gestisce le variabili ambientali (più HOME, XAUTHORITYe così via) che sudorendendo così l'esecuzione di comandi come root più sicuro.


Per quanto posso vedere solo la risposta di @Logics è abbastanza corretta (quella di @Ignacio Vazquez-Abrams non è completa). Ecco il tentativo di evitare chiarimenti a @Davros @knitti risposta / commenti (si prega gentilmente di rimuoverli / modificarli quando non è necessario):

  1. Sebbene entrambi i comandi siano effettivamente rappresentativi sudo, l'interfaccia utente utilizzata NON è l'unica differenza dei due comandi.
  2. L'esecuzione del programma GUI NON è l'unica situazione in cui dovresti usare gk / kdesudo, invece dovresti usare gk / kdesudo ogni volta che non riesci a determinare se il comando creerà / scriverà i file nella tua home directory (a cui HOMEpunta la variabile d'ambiente nella sudocomando in alcuni sistemi e situazioni). Non tutte le app della GUI scrivono nella tua home directory e non tutte le app della CLI no , quindi il tipo di comando non è il punto chiave.
  3. È ancora possibile utilizzare il sudocomando per avviare le app della GUI come root (per visualizzare l'output della console delle app come esempio), tuttavia è necessario gestire HOME(e altri come XAUTHORITY, elementi DISPLAYrelativi al metodo di input, ecc.) In modo corretto, quindi che l'app lanciata non fallirà, perderà funzionalità o farà cose davvero brutte. Di seguito è la mia attuale raccomandazione per l'utilizzosudo
    • sudo -H <rest of the command>
      • (dalla sudosezione del manuale della sezione 8) L' -H ( HOME )opzione richiede che la politica di sicurezza imposti la HOMEvariabile di ambiente sulla home directory dell'utente di destinazione (root per impostazione predefinita) come specificato dal database delle password. A seconda della politica, questo potrebbe essere il comportamento predefinito.
      • Ciò dovrebbe almeno impedire la creazione di file nella sudohome directory del chiamante
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Ciò dovrebbe consentire al <programma GUI> di essere eseguito in un terminale TTY e visualizzato nell'ambiente desktop
  4. Il comportamento del sudocomando non è identico su tutti i sistemi e può essere configurato tramite visudocomando, consultare la sudoers(5)manpage per ulteriori informazioni.

2
sembra una spiegazione molto migliore di quella che ottiene tutti i voti. più approfondito, più corretto. anche il PO ha risposto "tutto qui?" alla risposta che ha ottenuto tutti i voti.
johny perché

2

L'uso di sudo regolare per eseguire programmi grafici in rare occasioni incasina le autorizzazioni su alcuni file. Per sicurezza gksudo (o kdesudo, a seconda dei casi) dovrebbe essere usato per eseguire programmi con una GUI. Penso che questo sia davvero un bug, anche se ho sentito delle spiegazioni che gksudo capisce le variabili del server X e sudo probabilmente non porta a problemi. Proprio come un suggerimento; se stai eseguendo programmi grafici come root, invece di aprire un terminale per ogni programma che vuoi eseguire, digita ALT-F2 (alt e tasto funzione 2 contemporaneamente), quindi digita la finestra di dialogo che si apre "gksudo programma "senza virgolette e programma sostituito dall'applicazione che si desidera eseguire.


2

sudo viene eseguito come utente corrente con privilegi elevati. Ciò ha il potenziale di modificare le autorizzazioni dei file di determinati file di configurazione dell'utente (relativi al proprio ambiente grafico) quando si eseguono app grafiche. È possibile che si verifichino errori durante l'esecuzione di queste app senza sudo.

gksudo (kdesudo sotto KDE) esegue le app come utente root, quindi tutte le autorizzazioni dei file toccate sono sui file root, non sui file degli utenti. eseguire di nuovo queste app senza gksudo / kdesudo avrà sempre il comportamento previsto.


0

La risposta attuale non è corretta. Secondo il wiki di Ubuntu RootSudo :

"Non dovresti mai usare sudo normale per avviare applicazioni grafiche come root. Dovresti usare gksudo (kdesudo su Kubuntu) per eseguire tali programmi. Gksudo imposta HOME = ~ root e copia .Xauthority in una directory tmp. Questo impedisce i file nella tua casa directory che diventa di proprietà di root. (AFAICT, questo è tutto ciò che è speciale sull'ambiente del processo avviato con gksudo vs. sudo). "


2
Ci sono altre quattro risposte; quale non è corretto? La tua risposta non è essenzialmente la stessa di quella di Davros?
fixer1234,

Mi riferivo alla risposta contrassegnata come corretta. Sì, Davros sta dicendo la stessa cosa, ma l'ho aggiunto perché il suo non conteneva un collegamento a una fonte.
Eugene1832,

1
Una soluzione migliore sarebbe quella di proporre una modifica a quella risposta. È probabile che il miglioramento di una risposta sia accettato (+2 ripetizioni), mentre essenzialmente la duplicazione di una risposta è suscettibile di attrarre voti negativi.
fixer1234,
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.