Domyślnym emulatorem terminala w Ubuntu jest terminal GNOME . Znajduje się pod /usr/bin/gnome-terminali można go uruchomić za pomocą gnome-terminalpolecenia.
Czego naprawdę chcesz
To, czego prawdopodobnie potrzebujesz, to powłoka działająca jako root, tak jakby została utworzona z loginu root (na przykład ze wszystkimi zmiennymi środowiskowymi ustawionymi dla roota, a nie dla użytkownika).
Zakładając, że tego właśnie chcesz, jak sugeruje steeldriver , po prostu uruchom:
sudo -i
Będziesz miał powłokę root, w której wprowadzane polecenia będą uruchamiane jako root (bez konieczności ich poprzedzania sudo).
Ale jeśli naprawdę chcesz uruchomić graficzną aplikację emulującą terminal jako root, czytaj dalej. Przedstawiam dwa sposoby: za pomocą gksu/ gksdoi za pomocą sudopolecenia.
Ponieważ masz zainstalowany pakiet gksu
, możesz uruchomić gnome-terminaljako root z jednym z:
gksu gnome-terminal
gksudo gnome-terminal
(Ponieważ gksuw Ubuntu jest domyślnie ustawiony tryb sudo, powinny one być równoważne).
Działa gnome-terminaljako root bez kontrolującego terminala użytkownika innego niż root:
Praktycznie każde środowisko pulpitu zapewnia możliwość uruchomienia polecenia bez konieczności otwierania terminala (co wtedy, jeśli jest zamknięte, zwykle powoduje zakończenie polecenia).
Zwykle osiąga się to za pomocą Alt+ F2. Pojawi się pole tekstowe z etykietą Uruchom polecenie (lub podobne) i możesz wprowadzić polecenie.
Na przykład wygląda tak w Unity:

I tak w MATE (GNOME Flashback / Fallback, Xfce, LXDE są podobne):

Zauważ, że działa to z gksui gksudoponieważ używają graficznego okna dialogowego uwierzytelniania. Jeśli naciśniesz Alt+ F2i uruchomisz sudo ..., nie będziesz mógł wejść w interakcję z monitem o hasło.
Z sudo
Jeśli nie masz pakietu gksu i nie chcesz go instalować, możesz użyć:
sudo -H gnome-terminal
-HFlaga jest ważna, ponieważ ustawia HOMEzmienną środowiskową do /rootzamiast katalogu głównym swojego własnego użytkownika. Należy nie używać sudo gnome-terminal, ponieważ może złamać konfigurację gnome-terminal należącej do użytkownika innego niż root. Aby uzyskać więcej informacji na ten temat, zobacz:
( sudo -i gnome-terminaljest również w porządku.)
Pozbycie się kontrolującego terminala użytkownika innego niż root:
Jeśli (1) otworzysz terminal graficzny, (2) uruchomisz coś sudo -H gnome-terminalw nim, aby utworzyć nowy graficzny terminal główny i (3) zamkniesz oryginalny nie graficzny root ... wtedy główny terminal graficzny również zostanie zamknięty .
Wynika to z faktu, że główny terminal graficzny jest wysyłany SIGHUP, gdy terminal będący jego właścicielem zostanie opuszczony.
Aby temu zapobiec, możesz zamiast tego uruchomić graficzny terminal główny za pomocą:
sudo -H gnome-terminal &
Ale zadziała to tylko wtedy, gdy sudonie będzie musiał monitować o hasło. Jeśli tak, nie pojawi się monit o hasło.
Jednym ze sposobów obejścia tego jest użycie:
sudo -v
sudo -H gnome-terminal
sudo -vistnieje tylko w tym celu. Jak wyjaśniono w man sudo, „aktualizuje [] pamięć podręczną użytkownika, uwierzytelniając go w razie potrzeby.”
Zauważ, że to nadal nie zadziała, jeśli zostanie uruchomione bezpośrednio z pola Alt+ F2„polecenie uruchomienia” środowiska pulpitu , ponieważ nadal potrzebujesz terminala do wprowadzenia hasła sudo -v.
Lub możesz to zrobić w sposób, który można nazwać tradycyjnym, zawieszając zadanie po jego uruchomieniu:
- Uruchom
sudo -H gnome-terminalz oryginalnego graficznego terminala użytkownika innego niż root.
- Wprowadź hasło zgodnie z monitem
sudo. Uruchomi się terminal graficzny.
- Wciąż w terminalu innym niż root naciśnij Ctrl+, Zaby zawiesić terminal główny. Podczas gdy terminal root jest zawieszony, nie można go używać; jego interfejs nie będzie reagował na twoje działania.
- Zamknij kontrolujący terminal użytkownika innego niż root za pomocą
exit. Graficzne zadanie terminala głównego zostanie zarówno automatycznie zawieszone, jak i odrzucone przez terminal użytkownika innego niż root.
W skrócie:
sudo -H gnome-terminal
^Z
exit
Załóżmy jednak, że chcesz nadal używać oryginalnego terminala innego niż root. Następnie możesz uruchomić , gdzie jest numer zadania graficznego terminala głównego, aby wznowić zadanie w tle. Możesz uruchomić, aby znaleźć, ale prawdopodobnie nie będziesz musiał - liczba ta była wyświetlana tak, jak po naciśnięciu + . Na przykład:bg NNjobsN[N]CtrlZ
ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek:
^Z
[1]+ Stopped sudo -H gnome-terminal
ek@Ilex:~$
gnome-terminal. Więc spróbujsudo gnome-terminal.