GNU/Linux >> Linux Esercitazione >  >> Linux

sudo vs gksudo. differenza?

gksudo è un frontend basato su GTK di sudo (A proposito, kdesudo è un frontend basato su Qt), tuttavia (per impostazione predefinita) gestisce più variabili ambientali (HOME , XAUTHORITY , ecc.) rispetto a sudo rendendo così l'esecuzione dei comandi come root più sicura.

Per quanto posso vedere, solo la risposta di @Logics è sufficientemente corretta (@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 rappresentino davvero sudo , l'interfaccia utente utilizzata NON è l'unica differenza tra i 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 puoi determinare se il comando creerà/scriverà file nella tua home directory (che il HOME variabile d'ambiente punta nel sudo comando in alcuni sistemi e situazioni). Non tutte le app GUI scrivono nella tua home directory e non tutte le app CLI , quindi il tipo di comando non è il punto chiave.
  3. Puoi ancora usa 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 , DISPLAY , input-method-related-stuff, ecc.) correttamente le variabili ambientali in modo che l'app avviata non fallisca, perda funzionalità o faccia cose davvero brutte. Quella che segue è la mia attuale raccomandazione per l'utilizzo di sudo
    • sudo -H <rest of the command>
      • (da sudo sezione 8 pagina di manuale) Il -H ( HOME ) L'opzione richiede che la politica di sicurezza imposti HOME variabile di ambiente nella 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.
      • Questo dovrebbe almeno impedire la creazione di file in sudo directory home del chiamante
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Questo dovrebbe consentire a di essere eseguito in un terminale TTY e visualizzato nel tuo ambiente desktop
  4. Il comportamento del sudo comando non è identico su tutti i sistemi e può essere configurato tramite visudo comando, controlla sudoers(5) manpage per maggiori informazioni.

sudo chiede la password sulla riga di comando e gksudo apre una finestra di dialogo per esso.


L'uso regolare di sudo per eseguire programmi grafici in rare occasioni comprometterà 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 spiegazioni secondo cui gksudo comprende le variabili del server X e sudo non potrebbe causare problemi. Proprio come un suggerimento; se stai eseguendo programmi grafici come root, invece di aprire un terminale per ogni programma che desideri eseguire, digita ALT-F2 (alt e tasto funzione 2 contemporaneamente), quindi digita nella finestra di dialogo che si apre "gksudo program" senza le virgolette e il programma sostituito dall'applicazione che vuoi eseguire.


Linux
  1. Df vs. Du:Perché così tanta differenza??

  2. Qual è la differenza tra Sudo Su – e Sudo Su –?

  3. Differenza tra utente Sudo e utente root?

  4. La differenza tra Sudo e Gksu è uguale alla differenza tra Sudo -i e Sudo -s?

  5. La differenza tra Update-grub e Update-grub2?

La differenza tra sudo e su spiegata

Comando Sudo in Linux

Comprendere la differenza tra il comando sudo e su su Linux

Come migrare la directory HOME su Linux

Differenza tra su e sudo e come configurare sudo in Linux VPS.

bello sudo o sudo bello?