Esiste un modo più semplice o più "corretto" per aprire gedit come root?


19

Ho Ubuntu 12.04 in esecuzione in una macchina virtuale su scatola virtuale. La sua esistenza è principalmente un "giocattolo" con cui giocare con Ubuntu, quindi per questo motivo ho voluto la GUI (è questo che Dash è in Ubuntu 12.04? Comunque ...)

Una cosa per cui sto attualmente usando questa macchina è un server LAMP. Uso 'gedit' per modificare i miei file, ma poiché non ho impostato correttamente i permessi, lo apro con sudo nel terminale.

Proprio ora, per provare a semplificare questo processo, ho creato uno script shell sul desktop con un lavoro molto semplice: sudo gedit

Non posso fare a meno di pensare che ci sia un modo ancora più ovvio per aprire gedit come root dalla GUI di questo. Quindi c'è?

Modifica: ho appena "migliorato" il mio script sostituendo sudo con gksudo. Ora non devo avere una finestra terminale aperta mentre gedit è aperto. Quindi suppongo che sia abbastanza conveniente per ora :) Sarebbe bene, per motivi di conoscenza, sapere se questo è qualcosa di simile a come gli utenti Ubuntu più esperti farebbero questo tipo di cose.


2
Sì, gksudo(o più comunemente noto come gksu) ciò che la maggior parte delle persone usa. Un sacco di materiale di lettura: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/… askubuntu.com/questions/284306/… askubuntu.com/questions/11760/…
Seth

2
Seth, vorresti pubblicare la tua risposta come risposta? Questo sembra risolto.
Travis G.,

"Ora non devo avere una finestra terminale aperta mentre gedit è aperto." <- Potresti già saperlo, ma se aggiungi &un comando come mostrato qui , permetti alla finestra del terminale dello script di shell di chiudersi immediatamente quando geditviene lanciata invece di aspettare che si chiuda. Questo trucco dovrebbe funzionare gksudosenza problemi.
IQAndreas,

Risposte:


19

Usa gksudo gedit.

gksudoè l'equivalente di sudoper i programmi grafici, che non sono sicuri da usare sudo.


4
Il problema è che gksunon è più installato di default in Ubuntu 13.04. Mi piacerebbe davvero vedere una risposta per quelli su 13.04+. L'alternativa suggerita è pkexec, ma semplicemente non funziona = /.
Alaa Ali,

1
@Alaa Ma è ancora nel repository, quindi un veloce sudo apt-get install gksudovrebbe installarlo per te.
IQAndreas,

Se vuoi una spiegazione del perché non è consigliabile utilizzare sudo: qual è la differenza tra "gksudo nautilus" e "sudo nautilus"?
IQAndreas,

4
@IQAndreas, so che è nei repository, ma è semplicemente scomodo, se sto rispondendo a un nuovo utente e voglio che modifichi un file come root, per dirgli "prima, esegui sudo apt-get install gksu". In questo momento, è un dilemma, almeno per me. Non posso dirgli di "usare pkexec", perché non funziona, ed è troppo rischioso per sudo -iallora gedit. Inoltre, conosco la differenza tra gksudoe sudo=), a cosa potresti avermi collegato invece, è questo: perché gksu non è più installato di default in 13.04? .
Alaa Ali,

@Alaa Punto valido per quanto riguarda apt-get. In realtà, il mio secondo commento (quello con il link) era diretto alla risposta che hai dato, e non una continuazione della discussione nei commenti (ho pensato che il poster potrebbe voler sapere il motivo per cui "non è sicuro eseguirlo usando sudo ").
IQAndreas,

7

Mi trovo a correre geditcome root abbastanza frequentemente, quindi ho aggiunto l'opzione al menu di scelta rapida in Unity (utilizza lo stesso comando della risposta selezionata gksu gedit).

Sarà necessario modificare un *.desktopfile per aggiungere l'opzione di menu e sono disponibili due opzioni:

  • /usr/share/applications/gedit.desktop (richiede l'accesso root per la modifica) - L'opzione di menu verrà aggiunta per tutti gli utenti. Si noti che potrebbe essere necessario modificare nuovamente questo file, aggiungendo l'opzione se si verifica un aggiornamento a gedit che sovrascrive le modifiche.
  • ~/.local/share/applications/gedit.desktop (Se non riesci a trovarlo lì, crea un duplicato di quello trovato /usr/share/applications/e salvalo in questa nuova posizione) - L'opzione di menu sarà disponibile solo per l'utente specificato ed è considerata "pratica migliore". Nota che se lo hai già ancorato alla barra Unity, dovrai scegliere Unlock from Launcherl'icona GEdit esistente, quindi aggiungere nuovamente la versione "personalizzata". Queste modifiche dovrebbero rimanere anche se GEdit riceve un aggiornamento.

Modifica il file di testo gedit.desktop, aggiungendo il seguente blocco di codice (puoi usare i due blocchi esistenti come modello):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Successivamente, aggiungi la nuova azione all'elenco (dovrebbe trovarsi alla riga 19 del file di testo):

Actions=Window;Document;RootWindow;

Ora facendo clic con il pulsante destro del mouse sulla finestra dell'editor di testo in Unity viene visualizzata questa utile nuova opzione:

Ubuntu Unity: Apri Gedit come root


Ho anche la stessa configurazione per l'apertura del file manager come root, che funziona gksu nautilus.
IQAndreas,

2

gksudo geditfunziona in 16.04 LTS, ma in 17.10 con Wayland gksudonon funziona.


2

Utilizzare admin://davanti al nome del file che richiama la richiesta della password della GUI standard per il rispettivo WM / shell.

Quindi, ad esempio, se si desidera modificare i propri repository, invece di digitare sudo gedit /etc/apt/sources.listsi digita gedit admin:///etc/apt/sources.list. Funziona praticamente per tutti i programmi della GUI, non solo per Gedit.


Questa risposta è il modo corretto di farlo ora. La risposta accettata era corretta per le versioni precedenti di Ubuntu (prima della 17.04, credo).
PJ Singh,

0

Puoi aprire Nautilus come root, gksu nautilusora qualsiasi file di testo che apri da quella finestra si aprirà in Gedit come root.


@DavidFoerster non proprio, imo :-)
guntbert

0

gksudoapparentemente non è disponibile nelle versioni più recenti di Ubuntu e gksunon funzionava per me, ma questa risposta è stata molto utile nel mio caso (Ubuntu 17.04).

Utilizzare visudoper aggiungere la seguente riga al file di configurazione di sudo:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`

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.