GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak spustit terminál jako root?

Když chceme spustit program jako root, použijeme sudo , gksu , gksudo a atd. Moje otázka nyní zní, jak můžeme spustit Terminál jako uživatel root v Terminálu?

Zkoušel jsem pomocí gksudo terminal a gksu terminal ale nic se neděje. a spuštěním sudo terminal Zobrazuje se mi chyba sudo: terminal: command not found .

Nejlepší odpověď

Výchozí emulátor terminálu na Ubuntu je terminál GNOME. Nachází se na adrese /usr/bin/gnome-terminal a lze jej spustit pomocí gnome-terminal příkaz.

Co opravdu chcete

Pravděpodobně budete chtít shell spuštěný jako root, jako by byl vytvořen přihlášením uživatele root (například se všemi proměnnými prostředí nastavenými pro uživatele root a nikoli pro vašeho uživatele).

Za předpokladu, že to je to, co chcete, jak navrhl steeldriver, stačí spustit:

sudo -i

Budete mít root shell, ve kterém budou příkazy, které zadáte, spouštěny jako root (aniž byste jim museli předcházet sudo ).

Pokud ale opravdu chcete spouštět aplikaci emulátoru grafického terminálu jako root, čtěte dále. Uvádím dva způsoby:pomocí gksu /gksdo a pomocí sudo příkaz.

Pomocí gksu /gksudo

Protože máte gksu balíček nainstalován, můžete spustit gnome-terminal jako root s jedním z:

gksu gnome-terminal
gksudo gnome-terminal

(Od gksu je v Ubuntu standardně nastaven na sudo-mode, měly by být ekvivalentní.)

Spuštění gnome-terminal jako root bez řídícího nerootového terminálu:

Prakticky každé desktopové prostředí poskytuje možnost spustit příkaz bez nutnosti otevírat terminál (který by pak, pokud by byl zavřený, obvykle způsobil ukončení příkazu).

Toho se obvykle dosáhne pomocí Alt +F2 . Textové pole označené Spustit příkaz (nebo podobný) a vy můžete zadat svůj příkaz.

Například v Unity to vypadá takto:

A takhle v MATE (GNOME Flashback/Fallback, Xfce, LXDE jsou podobné):

Všimněte si, že to funguje s gksu a gksudo protože používají grafický ověřovací dialog. Pokud byste stisknuli Alt +F2 a spusťte sudo ... , pak byste nebyli schopni pracovat s výzvou k zadání hesla.

Pomocí sudo

Pokud nemáte balíček gksu a nechcete jej instalovat, můžete použít:

sudo -H gnome-terminal

-H příznak je důležitý, protože nastavuje HOME proměnná prostředí na /root místo domovského adresáře vašeho vlastního uživatele. Neměli byste ne použijte sudo gnome-terminal protože může narušit konfiguraci terminálu gnome patřící uživateli bez oprávnění root. Další informace o tomto naleznete na adrese:

  • RootSudo na wiki nápovědy Ubuntu
  • Proč by uživatelé nikdy neměli používat normální sudo ke spouštění grafických aplikací?

(sudo -i gnome-terminal je také v pořádku.)

Zbavení se řídícího terminálu bez oprávnění root:

Pokud (1) otevřete grafický terminál, (2) spusťte něco jako sudo -H gnome-terminal v něm vytvořit nový grafický kořenový terminál a (3) ukončete původní nekořenový grafický terminál …potom se ukončí i kořenový grafický terminál.

Související:Sudo už nepožaduje heslo?

Je to proto, že kořenový grafický terminál je odeslán SIGHUP, když je ukončen terminál, který jej vlastní.

Abyste tomu zabránili, možná si myslíte, že byste místo toho mohli spustit grafický kořenový terminál pomocí:

sudo -H gnome-terminal &

Ale to bude fungovat pouze pokud sudo nemusí vyžadovat heslo. Pokud ano, výzva k zadání hesla se nezobrazí.

Jedna cesta Chcete-li to obejít, použijte:

sudo -v
sudo -H gnome-terminal

sudo -v existuje právě pro tento účel. Jak je vysvětleno v man sudo , „aktualizuje přihlašovací údaje uživatele uložené v mezipaměti a v případě potřeby uživatele ověří.“

Nebo můžete to udělat tím, co by se dalo nazvat tradičním způsobem, pozastavením úlohy po jejím zahájení:

  1. Spusťte sudo -H gnome-terminal z původního nekořenového grafického terminálu.
  2. Podle výzvy sudo zadejte své heslo . Spustí se grafický terminál.
  3. Stále v terminálu jiného uživatele než root , stiskněte Ctrl +Z pozastavit kořenový terminál. Když je kořenový terminál pozastaven, nemůžete jej používat; jeho rozhraní nebude reagovat na vaše akce.
  4. Opusťte řídicí terminál jiného uživatele než root pomocí exit . Úloha grafického kořenového terminálu bude automaticky pozastavena a zrušena terminálem bez oprávnění root.

Zkrátka:

sudo -H gnome-terminal
^Z
exit

Předpokládejme však, že byste chtěli také nadále používat původní terminál bez root. Pak můžete spustit bg N , kde N je číslo úlohy grafického kořenového terminálu pro obnovení úlohy na pozadí. Můžete spouštět jobs najít N ale pravděpodobně nebudete muset – toto číslo se zobrazilo jako [N] když jste stiskli Ctrl +Z . Například:

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

Ubuntu
  1. Jak spustit Google Chrome jako root na openSUSE 12.1

  2. Jak spustit konkrétní program jako root bez výzvy k zadání hesla?

  3. Jak fungují vnitřnosti sudo?

  1. Jak zpětně zajistit, aby skript běžel jako root?

  2. Jak spustit skript??

  3. Spusťte ifconfig bez sudo

  1. Jak změnit Sudo nebo Root heslo v Ubuntu

  2. Jak spustit Wireshark na Ubuntu 17.10?

  3. Jak změnit vlastníka zpět na kořen?