Beh, forse è una fantasia, ma ci sono un certo numero di persone che dicono la stessa cosa:
Perché dovrei usare gksudo per le app Gtk invece di sudo?
Ci sono altre volte, tuttavia, in cui gli effetti collaterali possono essere lievi come le estensioni di Firefox che non si attaccano o estremi come non essere più in grado di accedere perché le autorizzazioni sull'autorizzazione .ICE sono cambiate.
Perché gli utenti non dovrebbero mai usare il normale sudo per avviare applicazioni grafiche?
Supponiamo di eseguire gedit (un editor di testo grafico) come root. Se esegui sudo gedit, HOME continuerà a puntare verso la tua home directory, anche se il programma è in esecuzione come root. Di conseguenza, gedit scriverà i file di configurazione come root nella directory home. Ciò a volte comporterà che i file di configurazione siano di proprietà di root e quindi inaccessibili a te (quando in seguito eseguirai il programma come te stesso e non come root).
Come eseguire un programma GUI come utente diverso (Debian)?
Prima di tutto, non usare sudo o su per cambiare gli utenti per eseguire un processo grafico, oppure potresti avere problemi in linea di principio (~ / .ICE che modifica il proprietario dell'autorizzazione è un problema notevole). Invece, crea un collegamento che utilizza il seguente comando:
Esecuzione di Sudo graficamente
Beh, a dire il vero, il più delle volte non lo è. Per molte applicazioni, è possibile eseguirle in modo improprio, utilizzando sudo per applicazioni grafiche e senza effetti collaterali.
...
Questi errori si verificano perché a volte quando si sudo
avvia un'applicazione, si avvia con privilegi di root ma utilizza il file di configurazione dell'utente.
Questo archivio di posta potrebbe anche interessarti.
Quindi, proviamolo.
2 nuovissime scatole virtuali. Ubuntu 14.04. Non eseguire mai Firefox su di essi. Cosa succederà quando eseguo il comando sudo firefox
?
tim@Hairy14CVB:~$ sudo firefox
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
...
shutdownObserver@XPIProvider.jsm:2192:13
Questo è lo stesso (o almeno molto simile) per entrambe le scatole virtuali. Mentre Firefox era in esecuzione, ho installato un'estensione per YouTube - una in primo piano. Quindi ho chiuso Firefox e controllato l'output.
tim@Hairy14CVB:~$ ls -la .ICEauthority
-rw------- 1 tim tim 1336 Jun 4 21:31 .ICEauthority
Bene, .ICEauthority
va bene! Tuttavia...
tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 Jun 1 20:49 ..
drwx------ 3 root root 4096 Jun 5 22:41 .dbus
drwx------ 4 root root 4096 Jun 5 22:41 .mozilla
3 cose nella mia cartella home ( /home/tim/
) sono di proprietà di root ( ..
, .dbus
e .mozilla
). Questo è lo stesso (o almeno molto simile) per entrambe le scatole virtuali.
Quindi, importa. Non ero sicuro, quindi ho eseguito Firefox, in questo modo:
tim@Hairy14CVB:~$ firefox
(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.
E questo brutto errore:
Per l'output completo del terminale (incluso firefox babble), vedi questi due pastebin, qui e qui .
A proposito, posso ancora eseguire Firefox come root. Ma ora sono stati cambiati più file:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
drwx------ 3 root root 4096 Jun 5 22:55 .adobe
drwx------ 3 root root 4096 Jun 5 22:40 .dbus
drwx------ 3 root root 4096 Jun 5 22:55 .macromedia
drwx------ 4 root root 4096 Jun 5 22:40 .mozilla
Questo perché ho caricato un'immagine su imgur.com? Non sono sicuro.
Come ho risolto questo problema? chown
. Non lo capisco, ma Internet ha detto di farlo, ed è un Virtual Box quindi yolo.
sudo chown -R tim:tim /home/tim/
E questo l'ha risolto. Ora l'output è solo il ..
file:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
E questo è lo stesso sul mio computer reale. Oh, e sulla mia virtualbox di Kubuntu:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 May 16 14:10 ..
Che non ho nemmeno mai eseguito un comando sudo. Quindi va tutto bene. Basta non eseguire sudo
un'applicazione GUI.
Test finale: eseguilo con i -H
e i -i
flag:
sudo -H firefox
e
sudo -i firefox
E buone notizie! Tuttavia, l'unica "cosa" radice è ..
. E posso correre firefox
senza root.
OP vuole che parli di Gedit.
mi sono imbattuto
sudo gedit
Quindi installato alcuni plugin casuali. Questo è stato l'output:
tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
Nota che non riesco nemmeno a visualizzare la proprietà di .gvfs
quindi ho fatto questo:
tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
dr-x------ 2 root root 0 Jun 6 10:05 .gvfs
Quindi l'esecuzione sudo gedit
fa cambiare un file nella mia directory home in root.
Posso ancora aprire gedit, ma questa volta tengo fuori un po 'di spazzatura:
(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.
E questo suggerisce che c'è un altro file ( ~.local/share/recently-used.xbel
) che è stato modificato. Penso che questo sia l'elenco dei file utilizzati di recente e (ipotesi fortunata) ora non ho più il mio elenco di file utilizzati di recente:
Dovrebbe esserci un file chiamato lì output2.txt.save2
. I miei pronomi sono Lui / Lui