Як запустити Terminal як root?


35

Коли ми хочемо запустити програми як корінь ми використовуємо sudo, gksu, gksudoі т.д. Тепер моє запитання , як же ми можемо запустити термінал в якості суперкористувача в терміналі?

Я спробував за допомогою gksudo terminalі , gksu terminalале нічого не відбувається. і запускаючи sudo terminalя отримую помилку sudo: terminal: command not found.


4
Це так gnome-terminal. Тож спробуйте sudo gnome-terminal.
g_p

1
Чи дійсно є якась перевага для запуску термінальної програми як root? чому б просто не запустити інтерактивну кореневу оболонку всередині терміналу sudo -i?
steeldriver

2
@Guru sudoне слід використовувати для запуску таких графічних програм. Якщо gksu/ gksudoне (або може не бути) встановлено, sudo -H ...(або sudo -i ...) можна використовувати для запуску графічної програми ...як root.
Елія Каган

так, ви праві.
g_p

Відповіді:


53

Емулятором терміналу за замовчуванням в Ubuntu є термінал GNOME . Він розташований в /usr/bin/gnome-terminalі може бути запущений за допомогою gnome-terminalкоманди.

Що ви дійсно хочете

Напевно, ви хочете, щоб оболонка працювала як root, ніби вона була створена з кореневим логіном (наприклад, з усіма змінними середовища, встановленими для root, а не для вашого користувача).

Якщо припустити, що ви хочете, як запропонував steeldriver , просто запустіть:

sudo -i

У вас буде коренева оболонка, в якій команди, які ви вводите, будуть запускатися як root (без того, щоб їх передували sudo).

Але якщо ви дійсно хочете запустити програму графічного емулятора терміналу як корінь, читайте далі. Я представляю два способи: з gksu/ gksdoі з sudoкомандою.

З gksu/gksudo

Оскільки у вас встановлений пакет gksuВстановити gksu , ви можете запустити gnome-terminalяк root з будь-якого з:

gksu gnome-terminal
gksudo gnome-terminal

(Оскільки gksuв Ubuntu за замовчуванням встановлено sudo-режим, вони повинні бути еквівалентними.)

Запуск gnome-terminalяк root без керуючого некореневого терміналу:

Практично в кожному середовищі робочого столу передбачено можливість запуску команди без необхідності відкривати термінал (що тоді, якщо закрито, зазвичай призведе до припинення дії команди).

Зазвичай це досягається за допомогою Alt+ F2. З'явиться текстове поле з позначкою команда Виконати (або подібне), і ви можете ввести свою команду.

Наприклад, це виглядає так у Unity:

Запустіть текстове поле команди в Unity

І так у MATE (GNOME Flashback / Fallback, Xfce, LXDE схожі):

Запустіть діалогове вікно Command в MATE

Зверніть увагу , що це працює з gksuі gksudoтому , що вони використовують діалог графічної аутентифікації. Якби ви натискали Alt+ F2та запускали sudo ..., ви б не змогли взаємодіяти із запитом пароля.

З sudo

Якщо у вас немає пакета gksu, і ви не хочете його встановлювати, ви можете використовувати:

sudo -H gnome-terminal

-HПрапор є важливим , оскільки він встановлює HOMEзмінні оточення /rootзамість домашньої директорії вашого власного користувача. Ви повинні НЕ використовувати , sudo gnome-terminalоскільки це може привести до поломки гном-термінал конфігурацію , що належать не суперкористувача. Докладніше про це див.

( sudo -i gnome-terminalце також добре.)

Позбавлення керуючого некореневого терміналу:

Якщо ви (1) відкриєте графічний термінал, (2) запустите щось подібне sudo -H gnome-terminalдо нього, щоб створити новий графічний кореневий термінал, і (3) вийти з оригінального некореневого графічного терміналу ... тоді і кореневий графічний термінал закривається .

Це відбувається тому, що кореневий графічний термінал надсилається SIGHUP, коли термінал, який йому належить, вийшов.

Щоб запобігти цьому, ви можете подумати, що можете замість цього запустити графічний кореневий термінал за допомогою:

sudo -H gnome-terminal &

Але це спрацює лише в тому випадку, якщо sudoне потрібно запитувати пароль. Якщо це так, ви не побачите запит на введення пароля.

Один із способів подолати це - використовувати:

sudo -v
sudo -H gnome-terminal

sudo -vіснує саме для цієї мети. Як пояснено в документі man sudo, він "оновлює [s] кешовані облікові дані користувача, при необхідності автентифікуючи користувача".

Зауважте, що це все одно не буде працювати, якщо запустити безпосередньо з вікна Alt+ F2«запустити команду» на робочому столі , оскільки вам все одно потрібен термінал для введення пароля sudo -v.

Або ви можете це зробити так, як можна назвати традиційний спосіб, призупинивши роботу після її запуску:

  1. Запустити sudo -H gnome-terminalз початкового некореневого графічного терміналу.
  2. Введіть свій пароль відповідно до запиту sudo. Запуститься графічний термінал.
  3. Все ж у некореневому терміналі натисніть Ctrl+, Zщоб призупинити кореневий термінал. Поки кореневий термінал призупинено, ви не можете його використовувати; його інтерфейс не реагуватиме на ваші дії.
  4. Закрийте керуючий некореневий термінал за допомогою exit. Завдання графічного кореневого терміналу буде як призупинено, так і відключено некореневим терміналом автоматично.

Коротко:

sudo -H gnome-terminal
^Z
exit

Але припустимо, ви хотіли й надалі використовувати оригінальний, некореневий термінал. Тоді ви можете запустити , де знаходиться номер завдання графічного кореневого терміналу, щоб відновити роботу у фоновому режимі. Ви можете бігти, щоб знайти, але вам, ймовірно, не доведеться - це число відображалося, як коли ви натискали + . Наприклад:bg NNjobsN[N]CtrlZ

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

Я також можу пробігти xterm. скільки терміналів існує в Ubuntu?
αғsnιη

@KasiyA багато. Я одного разу перестав рахувати в 25. Шпаклівка, Термінатор теж багато використовуються.
Rinzwind

6

Коротка відповідь:

gksudo gnome-terminal
(assuming gksu is installed)

відкриває термінал як корінь:

root@jacob-Satellite-L300:~#

Не потрібно пояснювати, що ви можете використовувати це, щоб відкрити будь-який термінал, як root; як Vala ( gksudo vala-terminal), Xterm ( gksudo xterm), Termit ( gksudo termit), UXTerm ( gksudo uxterm), Konsole ( gksudo konsole) тощо.


1
Що з цим sudo x-terminal-emulator?
αғsnιη

@KasiyA Ви повинні по- , як і раніше використовувати gksu x-terminal-emulator, gksudo x-terminal-emulator, kdesudo x-terminal-emulator(якщо робочий стіл середовище KDE), sudo -H x-terminal-emulatorабо sudo -i x-terminal-emulatorзамість цього, щоб уникнути цієї проблеми . Так само sudo geditне слід використовувати для запуску geditяк root.
Елія Каган

2

Як було сказано раніше, ви запитуєте, як запустити Terminal як root, але, швидше за все, ви дійсно хочете запустити графічний додаток Terminal як ваш звичайний користувач, і запустити кореневу оболонку всередині нього там, де ви зареєстровані як root. Таким чином, додатку графічного терміналу не надаються привілеї root. Попередні відповіді, здається, не дають чітких командних рядків для використання, ось ось що я використовую.

З xterm

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

'-E sudo -i' вказує xterm перейти на корінь у сеансі, а кольори - це просто зробити так, щоб було очевидно, що це коренева оболонка.

З терміналом Gnome

gnome-terminal -- sudo -i

Особисто я пов'язую клавіші Gnome, щоб легко запустити термінали

Перейдіть до налаштувань клавіатури, додайте спеціальний ярлик із ярликом Super + X та командою 'xterm -bg чорний -fg білий -sb -sl 5000', а root xterm із ярликом Super + Z та командою 'xterm -bg black -fg red - sb -sl 5000 -e sudo -i '.

У минулому я віддав перевагу xterm над терміналом Gnome, тому що шрифт невеликий і простий, але я підбігаю до Terminal, зараз я запускаю великі екрани DPI. Кольорове кодування ваших терміналів є дуже хорошою ідеєю, коли ви починаєте запускати різні профілі з небезпечними наслідками, щоб уникнути аварій (наприклад, локальний корінь, машина віддаленого клієнта, віддалений корінь клієнта).


0

Є ще один спосіб зробити це, протестований і працюючи на Ubuntu 16.04 LTS:

Спочатку встановіть панель gnome:

sudo apt install gnome-panel

Потім встановіть gksu:

sudo apt install gksu

Після завершення встановлення запустіть:

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

Це створює ярлик на робочому столі. Ви повинні мати можливість назвати його. Я назвав свою "X-Term", але ви можете називати свою майже все, що завгодно. Введіть /usr/bin/gksu* для шляху «Command».

Коли ви запускаєте новий ярлик на робочому столі, вам буде запропоновано запустити програму. Введіть: xterm.

Тепер вам буде запропоновано ввести пароль; Після вступу в нього ви отримаєте доступ до робочого кореневого терміналу. Не забудьте використовувати лише тоді, коли це абсолютно необхідно, і закрийте, коли закінчите з цим.

* припустимо, що ви встановили Ubuntu з налаштуваннями за замовчуванням і не змінили жодної файлової системи з моменту встановлення.


0

Я використовую розтяжку Debian 9

Перейдіть до комбінацій клавіш, додайте таку команду:

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

Я поставив Super + Tяк ярлик.

Тепер кожного разу, коли ви хочете відкрити термінал як root, просто введіть ярлик

Я сподіваюся, що це може допомогти комусь у майбутньому


-1

Ви можете запустити інтерактивну оболонку з:

sudo -s

Для отримання додаткової інформації:

man sudo

і прочитайте -s --shellрозділ.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.