L'emulatore di terminale predefinito su Ubuntu è il Terminale GNOME . Si trova in /usr/bin/gnome-terminal
e può essere eseguito con il gnome-terminal
comando.
Quello che vuoi davvero
Quello che probabilmente vuoi è una shell in esecuzione come root, come se fosse prodotta da un login root (ad esempio, con tutte le variabili d'ambiente impostate per root anziché per il tuo utente).
Supponendo che sia quello che vuoi, come ha suggerito steeldriver , corri:
sudo -i
Avrai una shell di root in cui i comandi immessi verranno eseguiti come root (senza doverli precedere sudo
).
Ma se vuoi davvero eseguire l'applicazione di emulazione terminale grafica come root, continua a leggere. Vi presento due modi: con gksu
/ gksdo
e con il sudo
comando.
Dato che hai installato il pacchetto gksu , puoi eseguire gnome-terminal
come root con uno dei seguenti:
gksu gnome-terminal
gksudo gnome-terminal
(Poiché gksu
è impostato su sudo-mode in Ubuntu per impostazione predefinita, questi dovrebbero essere equivalenti.)
In esecuzione gnome-terminal
come root senza un terminale non root di controllo:
Praticamente ogni ambiente desktop offre la possibilità di eseguire un comando senza dover aprire un terminale (che, se chiuso, di solito causa la chiusura del comando).
Questo di solito si ottiene con Alt+ F2. Apparirà una casella di testo con il comando Esegui (o simile) ed è possibile inserire il comando.
Ad esempio, appare così in Unity:
E così in MATE (GNOME Flashback / Fallback, Xfce, LXDE sono simili):
Nota che funziona con gksu
e gksudo
perché usano una finestra di dialogo di autenticazione grafica. Se dovessi premere Alt+ F2ed eseguire sudo ...
, non saresti in grado di interagire con la richiesta della password.
Con sudo
Se non si dispone del pacchetto gksu e non si desidera installarlo, è possibile utilizzare:
sudo -H gnome-terminal
Il -H
flag è importante perché imposta la HOME
variabile di ambiente /root
invece della home directory del tuo utente. Si dovrebbe non usare sudo gnome-terminal
come si può rompere la configurazione gnome-terminale appartenente all'utente non root. Per ulteriori informazioni al riguardo, consultare:
( sudo -i gnome-terminal
va anche bene.)
Sbarazzarsi del terminale di controllo non root:
Se (1) si apre un terminale grafico, (2) si esegue qualcosa di simile sudo -H gnome-terminal
ad esso, per creare un nuovo terminale grafico di base e (3) si esce dal terminale grafico non root originale ... quindi anche il terminale grafico di root si chiude .
Questo perché il terminale grafico di root viene inviato SIGHUP quando viene chiuso il terminale proprietario.
Per evitarlo, potresti pensare di poter invece avviare il terminale grafico di root con:
sudo -H gnome-terminal &
Questo funzionerà solo se sudo
non è necessario richiedere una password. In tal caso, non verrà visualizzata la richiesta della password.
Un modo per aggirare questo è usare:
sudo -v
sudo -H gnome-terminal
sudo -v
esiste proprio per questo scopo. Come spiegato in man sudo
, "aggiorna [s] le credenziali memorizzate nella cache dell'utente, autenticando l'utente se necessario."
Si noti che questo non funzionerà ancora se eseguito direttamente dalla casella Alt+ F2"comando comando" dell'ambiente desktop , poiché è ancora necessario un terminale per immettere la password sudo -v
.
Oppure puoi farlo in quello che potrebbe essere chiamato il modo tradizionale, sospendendo il lavoro dopo l'avvio:
- Esegui
sudo -H gnome-terminal
dal terminale grafico non root originale.
- Inserisci la tua password come richiesto da
sudo
. Verrà avviato il terminale grafico.
- Sempre nel terminale non root , premere Ctrl+ Zper sospendere il terminale root. Mentre il terminale di root è sospeso, non è possibile utilizzarlo; la sua interfaccia non risponderà alle tue azioni.
- Chiudere il terminale non root di controllo con
exit
. Il processo grafico del terminale di root verrà automaticamente sospeso e ignorato dal terminale non di root.
In breve:
sudo -H gnome-terminal
^Z
exit
Ma supponi di voler continuare a utilizzare anche il terminale originale non root. Quindi è possibile eseguire , dove si trova il numero di lavoro del terminale principale grafico, per riprendere il lavoro in background. Puoi correre per trovare ma probabilmente non dovrai farlo - quel numero è stato mostrato come quando hai premuto + . Per esempio:bg N
N
jobs
N
[N]
CtrlZ
ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek:
^Z
[1]+ Stopped sudo -H gnome-terminal
ek@Ilex:~$
gnome-terminal
. Quindi provasudo gnome-terminal
.