Qual è la differenza tra "gksudo nautilus" e "sudo nautilus"?


100

Ho usato gksudo nautiluse sudo nautilusattraverso Alt+ F2.

Qual è la differenza? Sembrano molto simili!


una spiegazione / discussione molto utile che include molti screenshot: psychocats.net/ubuntu/graphicalsudo
nocciola su natty


Risposte:


113

Tratto da qui :

Non si dovrebbe mai usare normale sudoper avviare applicazioni grafiche come root. Dovresti usare gksudo( kdesudosu Kubuntu) per eseguire tali programmi. gksudoimposta HOME=/roote copia .Xauthorityin una tmpdirectory. Ciò impedisce che i file nella directory home diventino di proprietà di root.

Si noti che si tratta principalmente di file di configurazione . Se esegui Nautilus come root, anche con gksu/ gksudo, e crei un file o una cartella ovunque con esso (incluso nella tua home directory), quel file o cartella sarà di proprietà di root. Ma se si esegue Nautilus (o la maggior parte delle altre applicazioni grafiche), come rootcon sudo, possono salvare i propri file di configurazione nella vostra home directory (piuttosto che root's home directory). Questi file di configurazione potrebbero essere di proprietà roote inaccessibili quando non si esegue come root, il che può compromettere gravemente le impostazioni e persino impedire ad alcune applicazioni di funzionare del tutto.

La soluzione, una volta che hai commesso questo errore, è trovare i file di configurazione ed eliminarli o chownfarli appartenere al tuo non rootutente. Molti di questi file iniziano con a .o sono contenuti in una directory che inizia con a .. Alcuni si trovano all'interno della .configcartella nella directory home. Per vedere file e cartelle che iniziano con a .in Nautilus, premi Ctrl+ H(questo mostra i file nascosti .) Per vederli con ls, usa il flag -a(o -A).

Per sapere se ci sono file non di tua proprietà nella tua home directory, puoi usare il seguente comando in un terminale:

find $HOME -not -user $USER -exec ls -lad {} \;

che elencherà tutti i file nella home directory non di proprietà dell'utente.


1
Ho già usato "sudo nautilus". Ciò significa che la mia home directory è ora di proprietà di root? (PS: il mio inglese non è perfetto)
DrKenobi,

22
No, significa che mentre stavi eseguendo Nautilus come root, tutti i file che ha creato nella tua home directory saranno di proprietà di root. Ciò potrebbe includere miniature e altri file di supporto creati automaticamente da Nautilus.
Ryan Thompson,

1
. Il segemnet citato che hai usato mi ha lasciato perplesso dalla prima volta che l'ho letto; in particolare dove dice: "Questo impedisce ai file nella tua home directory di diventare di proprietà di root." .. Ho provato questo oggi creando alcuni file di test, su 10.04, 10.04 (VM), 10.10 (VM), e non importa come ho iniziato sudo / gksudo (Terminale-> Nautilus, Terminale-> gedit, Alt + F2 .. .) ... tutti i casi hanno fatto sì che il mio nuovo creato fosse di proprietà di "root", con il gruppo "root" .. Forse mi sono perso qualcosa ma penso che parte del segmento citato sia fuorviante per le persone ...
Peter. O

Hmm, stavo solo citando la pagina wiki. Non ho davvero una profonda comprensione della differenza tra i due strumenti. Forse qualcuno su unix.stakexchange.com può aiutarti?

2
@ Peter.O Ho ampliato questa risposta per rispondere a quella domanda e spiegare esattamente con quali file vengono trattati in modo diverso sudo, tramite gksu/ gksudo. (@ChrisWilson Sentiti libero di tornare indietro o accorciare questa modifica se ritieni che non rientri completamente nella portata della tua risposta ... mi sembra che lo sia, ma è interamente una tua chiamata.)
Eliah Kagan

9

Sapevi che esiste un componente aggiuntivo Nautilus chiamato nautilus-gksuInstalla nautilus-gksu che aggiunge un "apri come amministratore" al menu di scelta rapida di nautilus?

Nota: non disponibile in Ubuntu 12.04 e versioni successive.


1
nautilus-gksunon è più disponibile da Ubuntu 12.04 e successivi.
IQAndreas,

E il tuo link mostra solo che è disponibile fino all'11.10 ...
Wilf

5

Se avvii un'applicazione grafica con sudo puoi rovinare la proprietà dei tuoi file che può causare la rottura delle tue app. Non farlo mai. Controlla la Guida della community :

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. Ciò impedisce che i file nella directory principale diventino di proprietà di Root. (AFAICT, questo è tutto ciò che è speciale sull'ambiente del processo avviato con gksudo vs. sudo).


3

sudo di default conserva la tua variabile $ HOME. Ad esempio, se esegui sudo firefox, eseguirai i privilegi di root ma la tua configurazione. Se modifichi le impostazioni in questa situazione, finirai con parti della configurazione di proprietà di root anziché con il tuo ID utente.


Mi piace l'assertività di questa risposta.
Andre Figueiredo,

2

sudo -H GUI-application-program

In Ubuntu (17.10) 17.10.1 e probabilmente nelle versioni future di Ubuntu, gksue gksudosono deprecate. Lavorano a Xorg ma non a Wayland. Ma è possibile utilizzare sudo -Hper eseguire i programmi applicativi della GUI senza danneggiare i file di configurazione. Do Non utilizzare pianura sudo.

Se stai usando Wayland (il nuovo sistema grafico che sostituisce Xorg), hai bisogno anche di un comando xhost.

xhost +si:localuser:root       # if Wayland
sudo -H nautilus --no-desktop

Vedi il seguente link per maggiori dettagli,

Perché gksu / gksudo o l'avvio di un'applicazione grafica con sudo non funzionano con Wayland?


-2

Trovato nel file generato dal comando terminal 'info gksudo':

gksu è un front-end per su e gksudo è un front-end per sudo. Il loro scopo principale è quello di eseguire comandi grafici che hanno bisogno di root senza la necessità di eseguire un emulatore di terminale X e usare direttamente su.

Ho scoperto che, in molti casi, i file "info" contengono descrizioni utili e informazioni utili sulle opzioni. Suggerirei vivamente che l'apprendimento di qualsiasi comando inizi con l'accesso al file "info" su quel comando.

Per il principiante, nel terminale, digita o incolla le informazioni del comando con il nome del comando a cui sei interessato come parametro. Il formato è info [command_name](ricordarsi di non includere il prompt dei comandi o le parentesi). Le voci di terminale suggerite per il principiante sono:

$ info
$ info info

-3

Se scegli gksudo nautilus, chiedi la tua password graficamente. Con sudo, lo chiedi in un terminale


6
Questa non è l'unica differenza, e spesso non è la differenza più importante. (Vedi alcune delle altre risposte qui.)
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.