GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Menjalankan Terminal Sebagai Root?

Ketika kita ingin menjalankan sebuah program sebagai root kita menggunakan sudo , gksu , gksudo dan lain-lain. Sekarang pertanyaan saya adalah bagaimana kita dapat menjalankan Terminal sebagai pengguna root di Terminal?

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

Jawaban Terbaik

Emulator terminal default di Ubuntu adalah Terminal GNOME. Itu terletak di /usr/bin/gnome-terminal dan dapat dijalankan dengan gnome-terminal perintah.

Apa yang Anda Inginkan

Yang mungkin Anda inginkan adalah shell yang berjalan sebagai root, seolah-olah dibuat dari login root (misalnya, dengan semua variabel lingkungan disetel untuk root, bukan untuk pengguna Anda).

Dengan asumsi itu yang Anda inginkan, seperti yang disarankan oleh steeldriver, jalankan saja:

sudo -i

Anda akan memiliki shell root di mana perintah yang Anda masukkan akan dijalankan sebagai root (tanpa harus mendahuluinya dengan 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 sudo perintah.

Dengan gksu /gksudo

Karena Anda memiliki gksu paket diinstal, Anda dapat menjalankan gnome-terminal sebagai root dengan salah satu dari:

gksu gnome-terminal
gksudo gnome-terminal

(Sejak gksu diatur ke sudo-mode di Ubuntu secara default, ini harus setara.)

Menjalankan gnome-terminal sebagai root tanpa pengontrol terminal non-root:

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

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

Misalnya, terlihat seperti ini di Unity:

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

Perhatikan bahwa ini bekerja dengan gksu dan gksudo karena mereka menggunakan dialog otentikasi grafis. Jika Anda menekan Alt +F2 dan jalankan sudo ... , Anda tidak akan dapat berinteraksi dengan permintaan sandi.

Dengan sudo

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

sudo -H gnome-terminal

-H flag penting karena menetapkan HOME variabel lingkungan ke /root alih-alih direktori home pengguna Anda sendiri. Anda seharusnya tidak gunakan sudo gnome-terminal karena dapat merusak konfigurasi terminal gnome milik pengguna non-root. Untuk informasi lebih lanjut tentang ini, lihat:

  • RootSudo di wiki bantuan Ubuntu
  • Mengapa pengguna tidak boleh menggunakan sudo biasa untuk memulai aplikasi grafis?

(sudo -i gnome-terminal juga oke.)

Menyingkirkan terminal non-root pengontrol:

Jika Anda (1) buka terminal grafis, (2) jalankan sesuatu seperti sudo -H gnome-terminal di dalamnya, untuk membuat terminal root grafis baru, dan (3) keluar dari terminal grafis non-root asli ...kemudian terminal grafis root juga keluar.

Terkait:Sudo tidak meminta kata sandi lagi?

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

Untuk mencegah hal ini, Anda mungkin berpikir bahwa Anda dapat meluncurkan terminal akar grafis dengan:

sudo -H gnome-terminal &

Tapi ini hanya akan bekerja jika sudo tidak harus meminta kata sandi. Jika ya, Anda tidak akan melihat permintaan sandi.

Satu arah untuk mengatasinya adalah dengan menggunakan:

sudo -v
sudo -H gnome-terminal

sudo -v ada hanya untuk tujuan ini. Seperti yang dijelaskan dalam man sudo , itu “memperbarui kredensial cache pengguna, mengautentikasi pengguna jika perlu.”

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

  1. Jalankan sudo -H gnome-terminal dari terminal grafis non-root asli.
  2. Masukkan kata sandi Anda seperti yang diminta oleh sudo . Terminal grafis akan dimulai.
  3. Masih di terminal non-root , tekan Ctrl +Z untuk menangguhkan terminal root. Saat terminal root ditangguhkan, Anda tidak dapat menggunakannya; antarmukanya tidak akan merespons tindakan Anda.
  4. Keluar dari terminal non-root pengontrol dengan exit . Pekerjaan terminal root grafis akan dibatalkan penangguhannya dan tidak diakui oleh terminal non-root, secara otomatis.

Singkatnya:

sudo -H gnome-terminal
^Z
exit

Tetapi misalkan Anda ingin tetap menggunakan terminal non-root asli juga. Kemudian Anda dapat menjalankan bg N , di mana N adalah nomor pekerjaan terminal akar grafis, untuk melanjutkan pekerjaan di latar belakang. Anda dapat menjalankan jobs untuk menemukan N tetapi Anda mungkin tidak perlu melakukannya–nomor itu ditampilkan sebagai [N] ketika Anda menekan Ctrl +Z . Misalnya:

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

Ubuntu
  1. Bagaimana Cara Menjalankan Program Tertentu Sebagai Root Tanpa Prompt Kata Sandi?

  2. Bagaimana Cara Membuat Skrip A Sebagai Root Secara Retroaktif?

  3. Bagaimana Cara Menjalankan Wireshark Di Ubuntu 17.10?

  1. Cara menjalankan Google Chrome sebagai root di openSUSE 12.1

  2. Bagaimana Internal Sudo Bekerja?

  3. Bagaimana Mengubah Pemilik Kembali Ke Root??

  1. Cara Mengubah Kata Sandi Sudo atau Root di Ubuntu

  2. Bagaimana Menjalankan Skrip??

  3. Jalankan ifconfig tanpa sudo