GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie führe ich das Terminal als Root aus?

Wenn wir ein Programm als root ausführen wollen, verwenden wir sudo , gksu , gksudo usw. Nun ist meine Frage, wie können wir ein Terminal als Root-Benutzer in Terminal ausführen?

Ich habe es mit gksudo terminal versucht und gksu terminal aber nichts passiert. und durch Ausführen von sudo terminal Ich erhalte den Fehler sudo: terminal: command not found .

Beste Antwort

Der Standard-Terminalemulator auf Ubuntu ist das GNOME-Terminal. Es befindet sich unter /usr/bin/gnome-terminal und kann mit dem gnome-terminal ausgeführt werden Befehl.

Was Sie wirklich wollen

Was Sie wahrscheinlich wollen, ist eine Shell, die als root läuft, als wäre sie von einem root-Login erzeugt worden (zum Beispiel mit allen Umgebungsvariablen, die für root und nicht für Ihren Benutzer gesetzt sind).

Angenommen, das ist das, was Sie wollen, wie Steeldriver vorgeschlagen hat, führen Sie einfach Folgendes aus:

sudo -i

Sie haben eine Root-Shell, in der von Ihnen eingegebene Befehle als Root ausgeführt werden (ohne dass ihnen sudo vorangestellt werden muss ).

Aber wenn Sie die grafische Terminal-Emulator-Anwendung wirklich als Root ausführen möchten, lesen Sie weiter. Ich stelle zwei Möglichkeiten vor:mit gksu /gksdo , und mit dem sudo Befehl.

Mit gksu /gksudo

Da Sie die gksu Paket installiert ist, können Sie gnome-terminal ausführen als root mit einem der folgenden:

gksu gnome-terminal
gksudo gnome-terminal

(Da gksu in Ubuntu standardmäßig auf den sudo-Modus eingestellt ist, sollten diese äquivalent sein.)

gnome-terminal wird ausgeführt als root ohne ein steuerndes 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 wäre, normalerweise dazu führen würde, dass der Befehl beendet wird).

Dies wird normalerweise mit Alt erreicht +F2 . Ein Textfeld mit der Bezeichnung Befehl ausführen (oder ähnlich) erscheint 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 funktioniert und gksudo weil sie einen grafischen Authentifizierungsdialog verwenden. Wenn Sie Alt drücken würden +F2 und führen Sie sudo ... aus , könnten Sie dann 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, weil es den HOME setzt Umgebungsvariable zu /root anstelle des Home-Verzeichnisses Ihres eigenen Benutzers. Das sollten Sie nicht Verwenden Sie sudo gnome-terminal da es die Gnome-Terminal-Konfiguration beschädigen kann, die dem Nicht-Root-Benutzer gehört. Weitere Informationen hierzu finden Sie unter:

  • RootSudo im Ubuntu-Hilfe-Wiki
  • Warum sollten Benutzer niemals das normale sudo verwenden, um grafische Anwendungen zu starten?

(sudo -i gnome-terminal geht auch.)

Das steuernde Nicht-Root-Terminal loswerden:

Wenn Sie (1) Öffnen Sie ein grafisches Terminal, (2) Führen Sie so etwas wie sudo -H gnome-terminal aus darin, um ein neues grafisches Root-Terminal zu erstellen, und (3) Beenden Sie das ursprüngliche grafische Nicht-Root-Terminal … dann wird das grafische Root-Terminal ebenfalls beendet.

Verwandte:Sudo fragt nicht mehr nach dem Passwort?

Dies liegt daran, dass das grafische Root-Terminal SIGHUP sendet, wenn das Terminal, das es besitzt, beendet wird.

Um dies zu verhindern, könnten Sie denken, Sie könnten stattdessen das grafische Root-Terminal mit starten:

sudo -H gnome-terminal &

Aber das funktioniert nur, wenn sudo muss nicht nach einem Passwort fragen. Wenn dies der Fall ist, wird die Passwortabfrage nicht angezeigt.

Eine Richtung Um dies zu umgehen, verwenden Sie:

sudo -v
sudo -H gnome-terminal

sudo -v existiert nur für diesen Zweck. Wie in man sudo erklärt , es "aktualisiert die zwischengespeicherten Anmeldeinformationen des Benutzers und authentifiziert den Benutzer bei Bedarf."

Oder Sie können dies auf traditionelle Weise tun, indem Sie den Job nach dem Start anhalten:

  1. Führen Sie sudo -H gnome-terminal aus vom ursprünglichen grafischen Nicht-Root-Terminal.
  2. Geben Sie Ihr Passwort ein, wenn Sie von sudo dazu aufgefordert werden . Das grafische Terminal wird gestartet.
  3. Immer noch im Nicht-Root-Terminal , drücken Sie Strg +Z um das Root-Terminal zu suspendieren. Während das Root-Terminal ausgesetzt ist, können Sie es nicht verwenden; seine Benutzeroberfläche reagiert nicht auf Ihre Aktionen.
  4. Beenden Sie das steuernde Nicht-Root-Terminal mit exit . Der graphische Root-Terminal-Job wird vom Nicht-Root-Terminal automatisch sowohl aufgehoben als auch abgelehnt.

Kurz:

sudo -H gnome-terminal
^Z
exit

Aber nehmen Sie an, Sie wollten auch weiterhin das ursprüngliche Nicht-Root-Terminal verwenden. Dann könnten Sie bg N , wobei N ist die Jobnummer des grafischen Root-Terminals, um den Job im Hintergrund fortzusetzen. Sie können jobs ausführen um N zu finden aber das müssen Sie wahrscheinlich nicht – diese Nummer wurde als [N] wenn Sie Strg gedrückt haben +Z . Zum Beispiel:

[email protected]:~$ sudo -H gnome-terminal
[sudo] password for ek: 
^Z
[1]+  Stopped                 sudo -H gnome-terminal
[email protected]:~$

Ubuntu
  1. So führen Sie Google Chrome als root auf openSUSE 12.1 aus

  2. Wie führe ich ein bestimmtes Programm als Root ohne Passwortabfrage aus?

  3. Wie funktionieren die Interna von Sudo?

  4. Wie lässt sich ein Skript rückwirkend als Root ausführen?

  5. Wie ändere ich den Besitzer zurück zum Root?

So installieren Sie LAMP auf Manjaro 20

So installieren Sie Magento unter Debian 11

So installieren Sie phpIPAM unter Ubuntu 20.04 LTS

Wie führe ich Dolphin als Root aus?

So führen Sie einen Alias ​​mit Sudo in Linux aus

So führen Sie sudo-Befehle ohne Passwort aus