Domyślnym emulatorem terminala w Ubuntu jest terminal GNOME . Znajduje się pod /usr/bin/gnome-terminal
i można go uruchomić za pomocą gnome-terminal
polecenia.
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
/ gksdo
i za pomocą sudo
polecenia.
Ponieważ masz zainstalowany pakiet gksu , możesz uruchomić gnome-terminal
jako root z jednym z:
gksu gnome-terminal
gksudo gnome-terminal
(Ponieważ gksu
w Ubuntu jest domyślnie ustawiony tryb sudo, powinny one być równoważne).
Działa gnome-terminal
jako 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 gksu
i gksudo
ponieważ 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
-H
Flaga jest ważna, ponieważ ustawia HOME
zmienną środowiskową do /root
zamiast 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-terminal
jest 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-terminal
w 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 sudo
nie 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 -v
istnieje 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-terminal
z 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 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
. Więc spróbujsudo gnome-terminal
.