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.
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í:
- Spusťte
sudo -H gnome-terminal
z původního nekořenového grafického terminálu. - Podle výzvy
sudo
zadejte své heslo . Spustí se grafický terminál. - 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.
- 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]:~$