Quali cose brutte specifiche accadono quando gedit viene usato con sudo?


10

Ho letto questa risposta spiegando che il root "a volte" può possedere qualcosa nella /home/$USERdirectory.

Qualcuno può fare un esempio su come dimostrarlo. Basta dare un caso di prova quando succede qualcosa di veramente brutto, quando corro

sudo gedit /etc/rc.local

modifica file e salva.

Ho ottenuto molti voti negativi nel tentativo di aiutare OP e commenti sommersi nel dire che è un crimine eseguire gedit con sudo.

Qualcuno può fare un vero esempio?

Ho spiegato chiaramente perché questa domanda non è un duplicato. Non esiste una risposta specifica per gedit alla domanda collegata.

Ed è importante spiegare perché ampiamente usato sudo geditè cattivo, o non proprio, ecc.


2
L'ho sempre usato con sudo, non ho mai avuto problemi. Buona domanda.
Dario Salvati,

1
@Wilf, a nano piace scrivere ~ / .nano_history che se lo esegui con sudo fa sì che il file sia di proprietà di root, quindi quando esegui nano senza sudo si lamenta che non può accedere al file. Una semplice sudo chownsoluzione.
psusi,

1
Per quanto riguarda rc.local, questo è uno script a livello di esecuzione, dovrebbe essere di proprietà di root, quindi sudo non ha alcun effetto su di esso. Provalo con ~ / .bashrc. Non credo che la shell accetti quel file se è di proprietà di root e dovrebbe regredire alle impostazioni predefinite. Ma questo è solo un suggerimento. Tornerò domani, vedremo come fa questa domanda
Sergiy Kolodyazhnyy il

1
Per la maggior parte degli editor non è l'apertura, è premendo SALVA. La maggior parte dei editros salva anche le impostazioni da qualche parte, quindi se modificate le impostazioni le aggiornerà.
Wilf,

2
Per quello che vale, lo modifico sul posto per usarlo -Hquando lo vedo.
Muru,

Risposte:


11

Per quanto riguarda sudo gedit, niente di terribile, solo scarsa pratica, soprattutto di recente. Quanto sarebbe più difficile suggerire sudo -H gedit?

-H,--set-home Richiedere che la politica di sicurezza imposti la variabile di ambiente HOME sulla home directory specificata dalla voce del database delle password dell'utente di destinazione. A seconda della politica, questo potrebbe essere il comportamento predefinito.

Cosa non succede?

Ottieni un paio di file di proprietà di root nella tua cartella home. Uno ( recently-used.xbel) tornerà probabilmente alla proprietà dell'utente. Ciò può accadere quando un file viene eliminato e ricreato. Per vedere cosa sudo geditè cambiato, esegui find ~ -user root -group roote vedi cosa viene restituito. Per impostazione predefinita, questo dovrebbe essere nulla.

Con quel comando, potresti vedere un paio di file di proprietà di root. Uno sarebbe un nuovo .file, .gvfse prima o poi un proprietario di root ~/.cache/dconfe il suddetto recently-used.xbel.

Quindi niente "il cielo sta fallendo", ma comunque. Ora ci sono state segnalazioni che l'uso continuato causa altri problemi ma non reclamerà ciò che non vedo qui.

Si noti inoltre che a partire da 13.10 a sudo geditutilizzerà la configurazione gedit dell'utente anziché la configurazione gedit di root. Ancora una volta solo cattiva pratica, quindi perché continuare a farlo o suggerire ad altri di farlo?


1
A volte ora colgo anche l'occasione per mostrare agli utenti come usare nano in quanto è facile e la maggior parte delle volte può soppiantare gedit. Ci sono alcuni casi in cui gedit è ancora meglio di nano anche per quelli che sanno come usare. Anche sudo gedit può portare a sudo nautilus che probabilmente è peggio .. (Qui ho un pkexec abilitato gedit ma questo va oltre lo scopo di questa discussione
doug

@wjandrea, suona bene, a cura
Doug

12

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 sudoavvia 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, .ICEauthorityva 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 ( .., .dbuse .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:

inserisci qui la descrizione dell'immagine

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 sudoun'applicazione GUI.

Test finale: eseguilo con i -He i -iflag:

sudo -H firefox

e

sudo -i firefox

E buone notizie! Tuttavia, l'unica "cosa" radice è ... E posso correre firefoxsenza 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 .gvfsquindi 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 geditfa 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


1
Hai scritto tutto tranne la risposta alla domanda. Dai un caso di prova con gedit. Devo contrassegnare come "non una risposta"? O "pessima qualità" anche se lunga?)))
Pilot6

5
@ Pilot6 - nella domanda Can anyone give an example how to prove it ..... Can anyone give a real example?- e questo si collega a cose passate e fornisce un esempio di cosa può accadere con Firefox come root - Devo contrassegnare il tuo commento 'non costruttivo' in quanto non riesco a trovare 'stranamente scontroso'? be nice cmon :)
Wilf,

1
Oh, per favore, non usare, ls -la|grep rootma neanche find . -uid 0ofind . -user root
solsTiCe

1
@ Pilot6 va bene, ho modificato per includere alcune cose su Gedit. Non credo che aggiunga nulla alla mia risposta, ma sembra che tu lo voglia così ...
Tim

4
Sia le citazioni che gli esempi dettagliati lo rendono super utile! Sono contento che tu abbia aggiunto Gedit ma sono d'accordo con @Wilf che era buono anche prima. Non sono solo esempi di Gedit che (deliberatamente) non ho incluso . Se la gente vuole, posso aggiungere una breve nota "a volte", ma penso davvero che questa domanda sia separata e ho votato per riaprire . Se riapriremo questo, proverò ad aggiungere un'altra risposta con maggiori dettagli su Gedit, ma questa sarà comunque la risposta più utile per la maggior parte delle persone.
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.