Jak uruchomić Terminal jako root?

35

Kiedy chcesz uruchomić program jako root używamy sudo, gksu, gksudoi itd. Teraz moje pytanie jest w jaki sposób można uruchomić Terminal jako użytkownik root w terminalu?

Próbowałem z użyciem gksudo terminali gksu terminalnic się nie dzieje. a po uruchomieniu sudo terminalpojawia się błąd sudo: terminal: command not found.

αғsнιη
źródło
4
Jest gnome-terminal. Więc spróbuj sudo gnome-terminal.
g_p
1
Czy naprawdę jest jakaś korzyść z uruchamiania samego programu terminalowego jako root? dlaczego nie wystarczy uruchomić interaktywną powłokę roota wewnątrz terminala z sudo -i?
steeldriver
2
sudoNie należy używać @Guru do uruchamiania takich programów graficznych. Jeśli gksu/ gksudonie jest (lub może nie być) zainstalowany, sudo -H ...(lub sudo -i ...) można użyć do uruchomienia aplikacji graficznej ...jako root.
Eliah Kagan
tak, masz rację.
g_p

Odpowiedzi:

53

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.

Z gksu/gksudo

Ponieważ masz zainstalowany pakiet gksuZainstaluj 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:

Uruchom pole tekstowe polecenia w Unity

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

Uruchom okno dialogowe Command w MATE

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:

  1. Uruchom sudo -H gnome-terminalz oryginalnego graficznego terminala użytkownika innego niż root.
  2. Wprowadź hasło zgodnie z monitem sudo. Uruchomi się terminal graficzny.
  3. 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.
  4. 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:~$
Eliah Kagan
źródło
Ja też mogę biegać xterm. ile terminali istnieje w Ubuntu?
αғsнιη
@KasiyA dużo. Kiedyś przestałem liczyć na 25. Kit, Terminator też są często używane.
Rinzwind
6

Krótka odpowiedź:

gksudo gnome-terminal
(assuming gksu is installed)

otwiera terminal jako root:

root@jacob-Satellite-L300:~#

Nie trzeba wyjaśniać, że można tego użyć do otwarcia dowolnego terminala jako root; takie jak Vala ( gksudo vala-terminal), Xterm ( gksudo xterm), Termit ( gksudo termit), UXTerm ( gksudo uxterm), Konsole ( gksudo konsole) i tak dalej.

Jacob Vlijm
źródło
1
Co z tym sudo x-terminal-emulator?
αғsнιη
@KasiyA Nadal należy użyć gksu x-terminal-emulator, gksudo x-terminal-emulator, kdesudo x-terminal-emulator(jeśli środowiskiem graficznym jest KDE), sudo -H x-terminal-emulatorlub sudo -i x-terminal-emulatorzamiast tego, aby uniknąć tego problemu . Podobnie, sudo geditnie powinien być używany do uruchamiania geditjako root.
Eliah Kagan
2

Jak już wspomniano, pytasz, jak uruchomić Terminal jako root, ale bardziej prawdopodobne jest, że faktycznie chcesz uruchomić graficzną aplikację Terminal jako zwykły użytkownik i uruchomić w niej powłokę root, w której jesteś zalogowany jako root. W ten sposób graficzna aplikacja terminalowa nie otrzymuje uprawnień roota. Poprzednie odpowiedzi nie wydają się zawierać jasnych wierszy poleceń, więc oto, czego używam.

Z Xterm

xterm -bg black -fg red -e sudo -i

„-E sudo -i” mówi xtermowi, aby przełączył się na rootowanie w sesji, a kolory mają na celu uczynienie bardzo oczywistym, że jest to powłoka root.

Z terminalem gnomów

gnome-terminal -- sudo -i

Osobiście wiążę skróty klawiszowe Gnome, aby łatwo uruchamiać terminale

Przejdź do ustawień klawiatury, dodaj niestandardowy skrót za pomocą skrótu Super + X i polecenie „xterm -bg czarny -fg biały -sb -sl 5000”, a następnie zrootuj xterm za pomocą skrótu Super + Z i polecenia „xterm -bg czarny -fg czerwony - sb -sl 5000 -e sudo -i '.

W przeszłości wolałem xterm od Gnome Terminal, ponieważ czcionka jest mała i prosta, ale przychodzę do Terminalu, teraz uruchamiam duże ekrany o wysokiej DPI. Kodowanie kolorami terminali jest bardzo dobrym pomysłem, gdy zaczniesz uruchamiać różne profile z niebezpiecznymi konsekwencjami, aby uniknąć wypadków (np. Lokalny root, komputer zdalnego klienta, root klienta zdalnego).

Neek
źródło
0

Jest na to inny sposób, przetestowany i działający na Ubuntu 16.04 LTS:

Najpierw zainstaluj panel gnome:

sudo apt install gnome-panel

Następnie zainstaluj gksu:

sudo apt install gksu

Po zakończeniu instalacji uruchom:

gnome-desktop-item-edit ~/Desktop/ --create-new

Spowoduje to utworzenie skrótu na pulpicie. Powinieneś mieć możliwość nazwania go. Nazywałem mój „X-Term”, ale możesz nazywać swoje prawie tak, jak chcesz. Wpisz /usr/bin/gksu* w ścieżce „Command”.

Po uruchomieniu nowego skrótu na pulpicie pojawi się monit o uruchomienie aplikacji. Wpisz: xterm.

Zostaniesz teraz poproszony o podanie hasła; po wejściu będziesz miał dostęp do działającego terminala głównego. Pamiętaj, aby używać tylko wtedy, gdy jest to absolutnie konieczne i zamykać, gdy skończysz.

* zakładając, że zainstalowałeś Ubuntu z ustawieniami domyślnymi i nie zmieniłeś znacząco żadnego z systemów plików od czasu instalacji.

Peter David Carter
źródło
0

Używam stretch Debian 9

Przejdź do skrótów klawiaturowych, dodaj takie polecenie:

`gksu / usr / bin / x-terminal-emulator '

Podałem Super + Tjako skrót.

Teraz za każdym razem, gdy chcesz otworzyć terminal jako root, po prostu wpisz skrót

Mam nadzieję, że może to komuś pomóc w przyszłości

Alex
źródło
-1

Możesz uruchomić interaktywną powłokę za pomocą:

sudo -s

Aby uzyskać więcej informacji:

man sudo

i przeczytaj -s --shellsekcję.

użytkownik465589
źródło