Risposte:
sudo
chiede la password dalla riga di comando e gksudo
apre una finestra di dialogo per essa.
sudo -E
equivale a gksudo
?
gksudo
è un frontend GTK-based sudo
(a proposito, kdesudo
è un frontend Qt-based), tuttavia (per impostazione predefinita) gestisce le variabili ambientali (più HOME
, XAUTHORITY
e così via) che sudo
rendendo 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):
sudo
, l'interfaccia utente utilizzata NON è l'unica differenza dei due comandi. HOME
punta la variabile d'ambiente nella sudo
comando 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. sudo
comando 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 DISPLAY
relativi 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>
sudo
sezione del manuale della sezione 8) L' -H ( HOME )
opzione richiede che la politica di sicurezza imposti la HOME
variabile 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.sudo
home directory del chiamantesudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
sudo
comando non è identico su tutti i sistemi e può essere configurato tramite visudo
comando, consultare la sudoers(5)
manpage per ulteriori informazioni.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.
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.
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). "