Bagaimana menjalankan Terminal sebagai root?

35

Ketika kita ingin menjalankan program sebagai root kita gunakan sudo, gksu, gksudodan lain-lain Sekarang pertanyaan saya adalah bagaimana kita dapat menjalankan Terminal sebagai user root di Terminal?

Saya mencoba menggunakan gksudo terminaldan gksu terminaltetapi tidak ada yang terjadi. dan dengan menjalankan sudo terminalsaya mendapatkan kesalahan sudo: terminal: command not found.

αғsнιη
sumber
4
Itu gnome-terminal. Jadi coba sudo gnome-terminal.
g_p
1
Apakah benar-benar ada keuntungan untuk menjalankan program terminal itu sendiri sebagai root? mengapa tidak memulai shell root interaktif di dalam terminal sudo -i?
steeldriver
2
@Guru sudoseharusnya tidak digunakan untuk menjalankan program grafis seperti ini. Jika gksu/ gksudotidak (atau mungkin tidak) diinstal, sudo -H ...(atau sudo -i ...) dapat digunakan untuk menjalankan aplikasi grafis ...sebagai root.
Eliah Kagan
ya kamu benar.
g_p

Jawaban:

53

Emulator terminal default pada Ubuntu adalah Terminal GNOME . Itu terletak di /usr/bin/gnome-terminaldan dapat dijalankan dengan gnome-terminalperintah.

Apa yang benar-benar Anda inginkan

Apa yang mungkin Anda inginkan adalah shell yang berjalan sebagai root, seolah-olah itu dihasilkan dari login root (misalnya, dengan semua variabel lingkungan ditetapkan untuk root daripada untuk pengguna Anda).

Dengan asumsi itulah yang Anda inginkan, seperti yang disarankan steeldriver , jalankan:

sudo -i

Anda akan memiliki shell root di mana perintah yang Anda masukkan akan dijalankan sebagai root (tanpa harus mendahului mereka sudo).

Tetapi jika Anda benar-benar ingin menjalankan aplikasi emulator terminal grafis sebagai root, baca terus. Saya menyajikan dua cara: dengan gksu/ gksdo, dan dengan sudoperintah.

Dengan gksu/gksudo

Karena Anda telah menginstal paket gksuInstal gksu , Anda dapat menjalankan gnome-terminalsebagai root dengan salah satu dari:

gksu gnome-terminal
gksudo gnome-terminal

(Karena gksudiatur ke mode-sudo di Ubuntu secara default, ini harus setara.)

Berjalan gnome-terminalsebagai root tanpa terminal pengendali non-root:

Hampir setiap lingkungan desktop menyediakan fasilitas untuk menjalankan perintah tanpa harus membuka terminal (yang kemudian, jika ditutup, biasanya menyebabkan perintah akan dihentikan).

Ini biasanya dicapai dengan Alt+ F2. Kotak teks berlabel Perintah jalankan (atau serupa) akan muncul dan Anda dapat memasukkan perintah Anda.

Misalnya, seperti ini di Unity:

Jalankan kotak teks perintah di Unity

Dan seperti ini di MATE (GNOME Flashback / Fallback, Xfce, LXDE serupa):

Jalankan kotak dialog Perintah di MATE

Perhatikan bahwa ini berfungsi dengan gksudan gksudokarena mereka menggunakan dialog otentikasi grafis. Jika Anda menekan Alt+ F2dan menjalankan sudo ..., maka Anda tidak akan dapat berinteraksi dengan prompt kata sandi.

Dengan sudo

Jika Anda tidak memiliki paket gksu dan Anda tidak ingin menginstalnya, Anda dapat menggunakan:

sudo -H gnome-terminal

The -Hflag penting karena menetapkan HOMEvariabel lingkungan untuk /rootbukannya direktori home pengguna Anda sendiri. Anda tidak boleh menggunakannya sudo gnome-terminalkarena dapat merusak konfigurasi gnome-terminal milik pengguna non-root. Untuk informasi lebih lanjut tentang ini, lihat:

( sudo -i gnome-terminaljuga baik-baik saja.)

Menyingkirkan terminal pengendali non-root:

Jika Anda (1) membuka terminal grafis, (2) menjalankan sesuatu seperti sudo -H gnome-terminaldi dalamnya, untuk membuat terminal root grafis baru, dan (3) keluar dari terminal grafis non-root asli ... maka terminal root grafis juga berhenti. .

Ini karena terminal root grafis dikirim SIGHUP ketika terminal yang memilikinya itu keluar.

Untuk mencegah hal ini, Anda mungkin berpikir Anda bisa meluncurkan terminal root grafis dengan:

sudo -H gnome-terminal &

Tetapi ini hanya akan berfungsi jika sudotidak harus meminta kata sandi. Jika ya, Anda tidak akan melihat prompt kata sandi.

Salah satu cara untuk mengatasi ini adalah dengan menggunakan:

sudo -v
sudo -H gnome-terminal

sudo -vada hanya untuk tujuan ini. Sebagaimana dijelaskan dalam man sudo, itu "memperbarui kredensial cache pengguna, mengotentikasi pengguna jika perlu."

Perhatikan bahwa ini masih tidak akan berfungsi jika dijalankan langsung dari kotak Alt+ F2"jalankan perintah" lingkungan desktop Anda , karena Anda masih memerlukan terminal untuk memasukkan kata sandi Anda sudo -v.

Atau Anda dapat melakukannya dengan cara yang mungkin disebut dengan cara tradisional, dengan menangguhkan pekerjaan setelah dimulai:

  1. Jalankan sudo -H gnome-terminaldari terminal grafis non-root yang asli.
  2. Masukkan kata sandi Anda seperti yang diminta oleh sudo. Terminal grafis akan mulai.
  3. Masih di terminal non-root , tekan Ctrl+ Zuntuk menangguhkan terminal root. Saat terminal root ditangguhkan, Anda tidak dapat menggunakannya; antarmuka tidak akan menanggapi tindakan Anda.
  4. Tutup terminal pengendali non-root dengan exit. Pekerjaan terminal root grafis akan ditangguhkan dan tidak diakui oleh terminal non-root, secara otomatis.

Pendeknya:

sudo -H gnome-terminal
^Z
exit

Tapi misalkan Anda ingin tetap menggunakan terminal asli, juga non-root. Lalu Anda bisa menjalankan , di mana nomor pekerjaan terminal root grafis, untuk melanjutkan pekerjaan di latar belakang. Anda dapat menjalankan untuk menemukan tetapi Anda mungkin tidak perlu - nomor itu ditampilkan seperti ketika Anda menekan + . Sebagai contoh:bg NNjobsN[N]CtrlZ

ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek: 
^Z
[1]+  Stopped                 sudo -H gnome-terminal
ek@Ilex:~$
Eliah Kagan
sumber
Saya juga bisa berlari xterm. berapa banyak terminal yang ada di Ubuntu?
αғsнιη
@ Kassi banyak. Saya pernah berhenti menghitung pada 25. Putty, Terminator banyak digunakan juga.
Rinzwind
6

Jawaban singkat:

gksudo gnome-terminal
(assuming gksu is installed)

membuka terminal sebagai root:

root@jacob-Satellite-L300:~#

Tidak perlu menjelaskan bahwa Anda dapat menggunakan ini untuk membuka terminal apa pun sebagai root seperti ini; seperti Vala ( gksudo vala-terminal), Xterm ( gksudo xterm), Termit ( gksudo termit), UXTerm ( gksudo uxterm), Konsole ( gksudo konsole) dan sebagainya.

Yakub Vlijm
sumber
1
Bagaimana dengan ini sudo x-terminal-emulator?
αғsнιη
@KasiyA Anda masih harus menggunakan gksu x-terminal-emulator, gksudo x-terminal-emulator, kdesudo x-terminal-emulator(jika lingkungan desktop Anda KDE), sudo -H x-terminal-emulatoratau sudo -i x-terminal-emulatorsebaliknya, untuk menghindari masalah yang . Demikian pula, sudo gedittidak boleh digunakan untuk menjalankan geditsebagai root.
Eliah Kagan
2

Seperti yang dinyatakan sebelumnya, Anda bertanya bagaimana menjalankan Terminal sebagai root, tetapi lebih besar kemungkinan Anda sebenarnya ingin menjalankan aplikasi Terminal grafis sebagai pengguna normal Anda, dan memulai shell root di dalamnya di mana Anda masuk sebagai root. Dengan cara ini aplikasi terminal grafis tidak diberikan hak akses root. Jawaban sebelumnya sepertinya tidak memberikan baris perintah yang jelas untuk digunakan jadi inilah yang saya gunakan.

Dengan xterm

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

'-E sudo -i' memberitahu xterm untuk beralih ke root di sesi, dan warnanya hanya untuk membuatnya sangat jelas bahwa itu adalah shell root.

Dengan Terminal Gnome

gnome-terminal -- sudo -i

Secara pribadi, saya mengikat Gnome keybindings untuk meluncurkan terminal dengan mudah

Buka Pengaturan keyboard, tambahkan pintasan khusus dengan Shortcut Super + X dan perintah 'xterm -bg hitam -fg putih -sb -sl 5000', dan root xterm dengan Shortcut Super + Z dan perintah 'xterm -bg hitam -fg merah - sb -sl 5000 -e sudo -i '.

Di masa lalu saya cenderung lebih suka xterm daripada Terminal Gnome karena fontnya kecil dan sederhana, tapi saya datang ke Terminal sekarang saya menjalankan layar besar DPI tinggi. Kode warna terminal Anda adalah ide yang sangat bagus setelah Anda mulai menjalankan profil yang berbeda dengan konsekuensi berbahaya untuk menghindari kecelakaan (misalnya root lokal, mesin klien jarak jauh, root klien jarak jauh).

Neek
sumber
0

Ada cara lain untuk melakukan ini, diuji dan bekerja di Ubuntu 16.04 LTS:

Pertama instal gnome-panel:

sudo apt install gnome-panel

Kemudian instal gksu:

sudo apt install gksu

Setelah instalasi selesai, jalankan:

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

Ini menciptakan pintasan desktop. Anda harus memiliki opsi untuk menamainya. Saya menyebut 'X-Term' milik saya, tetapi Anda dapat menelepon Anda apa pun yang Anda inginkan. Ketikkan /usr/bin/gksu* untuk jalur 'Perintah'.

Saat Anda meluncurkan pintasan desktop baru, Anda akan diminta menjalankan aplikasi. Ketik: xterm.

Anda sekarang akan diminta kata sandi Anda; setelah Anda memasukkannya, Anda akan memiliki akses ke terminal root yang berfungsi. Ingatlah untuk menggunakan hanya ketika benar-benar diperlukan dan tutup ketika Anda selesai dengan itu.

* dengan asumsi Anda menginstal Ubuntu dengan pengaturan default dan belum mengubah sistem file apa pun secara signifikan sejak instalasi.

Peter David Carter
sumber
0

Saya menggunakan stretch Debian 9

Buka pintasan keyboard, tambahkan perintah seperti ini:

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

Saya telah menempatkan Super + Tsebagai jalan pintas.

Sekarang setiap kali Anda ingin membuka terminal sebagai root, cukup ketik pintasan Anda

Saya harap ini dapat membantu seseorang di masa depan

Alex
sumber
-1

Anda dapat memulai shell interaktif dengan:

sudo -s

Untuk informasi lebih lanjut, lakukan:

man sudo

dan baca -s --shellbagian itu.

pengguna465589
sumber