Der Standard-Terminal-Emulator unter Ubuntu ist das GNOME-Terminal . Es befindet sich unter /usr/bin/gnome-terminal
und kann mit dem gnome-terminal
Befehl ausgeführt werden.
Was Sie wirklich wollen
Was Sie wahrscheinlich wollen, ist eine Shell, die als root ausgeführt wird, als ob sie von einem root-Login erstellt worden wäre (zum Beispiel mit allen Umgebungsvariablen, die für root und nicht für Ihren Benutzer festgelegt wurden).
Angenommen, Sie möchten, wie von steeldriver vorgeschlagen , Folgendes ausführen:
sudo -i
Sie haben eine Root-Shell, in der die von Ihnen eingegebenen Befehle als Root ausgeführt werden (ohne dass sie vorangestellt werden müssen sudo
).
Wenn Sie die grafische Terminalemulator-Anwendung jedoch wirklich als Root ausführen möchten, lesen Sie weiter. Ich präsentiere zwei Möglichkeiten: mit gksu
/ gksdo
und mit dem sudo
Befehl.
Da Sie das gksu- Paket installiert haben, können Sie gnome-terminal
als root eines der folgenden Programme ausführen :
gksu gnome-terminal
gksudo gnome-terminal
(Da gksu
in Ubuntu standardmäßig der Sudo-Modus eingestellt ist, sollten diese gleichwertig sein.)
Laufen gnome-terminal
als root ohne kontrollierendes Nicht-Root-Terminal:
Praktisch jede Desktop-Umgebung bietet die Möglichkeit, einen Befehl auszuführen, ohne ein Terminal öffnen zu müssen (was dann, wenn es geschlossen wird, in der Regel dazu führt, dass der Befehl beendet wird).
Dies wird normalerweise mit Alt+ erreicht F2. Ein Textfeld mit der Bezeichnung Befehl ausführen (oder ähnliches) wird angezeigt, und Sie können Ihren Befehl eingeben.
In Unity sieht es beispielsweise so aus:
Und so in MATE (GNOME Flashback / Fallback, Xfce, LXDE sind ähnlich):
Beachten Sie, dass dies mit gksu
und funktioniert, gksudo
da sie einen grafischen Authentifizierungsdialog verwenden. Wenn Sie Alt+ drücken F2und ausführen sudo ...
, können Sie nicht mit der Passwortabfrage interagieren.
Mit sudo
Wenn Sie das gksu-Paket nicht haben und es nicht installieren möchten, können Sie Folgendes verwenden:
sudo -H gnome-terminal
Das -H
Flag ist wichtig, da es die HOME
Umgebungsvariable auf /root
anstelle des Basisverzeichnisses des eigenen Benutzers setzt. Sie sollten nicht verwenden, sudo gnome-terminal
da dies die Konfiguration des Gnome-Terminals des Nicht-Root-Benutzers beschädigen kann. Weitere Informationen hierzu finden Sie unter:
( sudo -i gnome-terminal
Ist auch in Ordnung.)
Das kontrollierende Nicht-Root-Terminal loswerden:
Wenn Sie (1) ein Grafikterminal öffnen, (2) so etwas wie sudo -H gnome-terminal
darin ausführen , um ein neues Grafikterminal zu erstellen, und (3) das ursprüngliche Nicht-Root-Grafikterminal beenden, wird auch das Root-Grafikterminal beendet .
Dies liegt daran, dass dem grafischen Root-Terminal SIGHUP gesendet wird, wenn das Terminal, dessen Eigentümer es ist, beendet wird.
Um dies zu verhindern, könnten Sie denken, Sie könnten das grafische Root-Terminal stattdessen mit folgendem Befehl starten:
sudo -H gnome-terminal &
Dies funktioniert sudo
jedoch nur, wenn Sie nicht zur Eingabe eines Kennworts aufgefordert werden müssen. In diesem Fall wird die Passwortabfrage nicht angezeigt.
Eine Möglichkeit , dies zu umgehen, besteht darin, Folgendes zu verwenden:
sudo -v
sudo -H gnome-terminal
sudo -v
existiert nur für diesen Zweck. Wie unter man sudo
"Aktualisieren der zwischengespeicherten Anmeldeinformationen des Benutzers und Authentifizieren des Benutzers, falls erforderlich" erläutert .
Beachten Sie, dass dies immer noch nicht funktioniert, wenn Sie direkt über das Feld Alt+ F2"Befehl ausführen" Ihrer Desktop-Umgebung ausgeführt werden, da Sie immer noch ein Terminal benötigen, für das Sie Ihr Kennwort eingeben können sudo -v
.
Oder man kann es intunwas könnte die traditionelle ArtWeise genannt werden, durch den Auftrag zur Aussetzung nach dem Start:
- Führen Sie
sudo -H gnome-terminal
vom ursprünglichen grafischen Terminal ohne Rootberechtigung aus.
- Geben Sie Ihr Passwort ein, wenn Sie dazu aufgefordert werden
sudo
. Das Grafikterminal wird gestartet.
- Drücken Sie im Nicht-Root-TerminalCtrl + Z, um das Root-Terminal anzuhalten. Solange das Root-Terminal angehalten ist, können Sie es nicht verwenden. Die Benutzeroberfläche reagiert nicht auf Ihre Aktionen.
- Beenden Sie das steuernde Nicht-Root-Terminal mit
exit
. Der grafische Root-Terminal-Job wird vom Nicht-Root-Terminal automatisch sowohl nicht suspendiert als auch abgelehnt.
Zusamenfassend:
sudo -H gnome-terminal
^Z
exit
Angenommen, Sie möchten weiterhin das ursprüngliche Nicht-Root-Terminal verwenden. Anschließend können Sie ausführen , wo sich die Auftragsnummer des grafischen Root-Terminals befindet, um den Auftrag im Hintergrund fortzusetzen. Du kannst rennen , um zu finden, aber du musst es wahrscheinlich nicht - diese Nummer wurde so angezeigt, als du + gedrückt hast . Beispielsweise: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
. Also versuch essudo gnome-terminal
.