Apakah ada cara yang lebih mudah atau lebih 'benar' untuk membuka gedit sebagai root?

19

Saya memiliki ubuntu 12,04 berjalan di mesin virtual di kotak virtual. Keberadaannya terutama sebagai 'mainan' untuk bermain-main dengan Ubuntu, jadi untuk alasan ini saya menginginkan GUI (apakah itu 'Dash' di ubuntu 12.04? Ngomong-ngomong ...)

Satu hal yang saat ini saya gunakan untuk mesin ini adalah server LAMP. Saya menggunakan 'gedit' untuk mengedit file saya, tetapi karena saya belum mengatur izin dengan benar, saya hanya membukanya dengan sudo di terminal.

Baru saja, untuk mencoba menyederhanakan proses ini saya membuat skrip shell di desktop dengan pekerjaan yang sangat sederhana - sudo gedit

Saya tidak dapat berhenti berpikir harus ada cara yang lebih jelas untuk membuka gedit sebagai root dari GUI daripada ini. Jadi, apakah disana?

Sunting: Saya baru saja 'memperbaiki' skrip saya dengan mengganti sudo dengan gksudo. Sekarang saya tidak perlu membuka jendela terminal saat gedit terbuka. Jadi saya kira ini cukup nyaman untuk saat ini :) Akan lebih baik, demi pengetahuan, untuk mengetahui apakah ini mendekati bagaimana pengguna ubuntu yang lebih berpengalaman akan melakukan hal semacam ini.

MrVimes
sumber
2
Ya, gksudo(atau lebih dikenal sebagai gksu) itulah yang digunakan kebanyakan orang. Banyak sekali bahan bacaan: askubuntu.com/questions/270006/… askubuntu.com/questions/197772/… askubuntu.com/questions/284306/... askubuntu.com/questions/11760/…
Seth
2
Seth, apakah Anda bersedia memposting balasan Anda sebagai jawaban? Ini terlihat terselesaikan.
Travis G.
"Sekarang saya tidak perlu memiliki jendela terminal terbuka saat gedit terbuka." <- Anda mungkin sudah tahu tentang ini, tetapi jika Anda menambahkan &perintah seperti yang ditunjukkan di sini , Anda membiarkan jendela terminal skrip shell untuk segera menutup ketika geditdiluncurkan bukannya menunggu untuk menutup. Trik ini harus bekerja gksudotanpa masalah.
IQAndreas

Jawaban:

19

Gunakan gksudo gedit.

gksudoadalah setara dengan sudountuk program grafis, yang tidak aman untuk digunakan sudo.

Taymon
sumber
4
Masalahnya adalah, gksutidak diinstal secara default di Ubuntu 13.04 lagi. Saya akan sangat senang melihat jawaban untuk mereka yang berusia 13,04+. Alternatif yang disarankan adalah pkexec, tetapi tidak berfungsi = /.
Alaa Ali
1
@Alaa Tapi itu masih dalam repositori, jadi sudo apt-get install gksuinstal cepat untuk Anda.
IQAndreas
Jika Anda ingin penjelasan mengapa tidak disarankan untuk digunakan sudo: Apa perbedaan antara "gksudo nautilus" dan "sudo nautilus"?
IQAndreas
4
@IQAndreas, saya tahu itu ada di dalam repositori, tapi itu tidak nyaman, jika saya menjawab pengguna baru dan ingin dia mengedit file sebagai root, untuk memberitahunya "pertama, jalankan sudo apt-get install gksu". Saat ini, ini adalah dilema, setidaknya bagi saya. Saya tidak bisa memberitahunya untuk "menggunakan pkexec", karena tidak berfungsi, dan terlalu berisiko untuk sudo -iitu gedit. Juga, saya tahu perbedaan antara gksudodan sudo=), yang mungkin Anda tautkan ke saya, apakah ini: Mengapa gksu tidak diinstal secara default di 13.04? .
Alaa Ali
@Alaa Poin yang valid tentang apt-get. Sebenarnya, komentar kedua saya (yang memiliki tautan) diarahkan pada jawaban yang Anda berikan, dan bukan kelanjutan dari diskusi dalam komentar (saya pikir poster mungkin ingin tahu alasan mengapa "tidak aman untuk dijalankan menggunakan sudo ").
IQAndreas
7

Saya menemukan diri saya menjalankan geditsebagai root cukup sering, jadi saya menambahkan opsi ke menu klik kanan di Unity (menggunakan perintah yang sama dengan jawaban yang dipilih, gksu gedit).

Anda perlu mengedit *.desktopfile untuk menambahkan opsi menu, dan Anda memiliki dua pilihan:

  • /usr/share/applications/gedit.desktop (memerlukan akses root untuk mengedit) - Opsi menu akan ditambahkan untuk semua pengguna. Perhatikan bahwa Anda mungkin perlu mengedit kembali file ini, menambahkan opsi jika pembaruan untuk gedit terjadi yang menimpa perubahan Anda.
  • ~/.local/share/applications/gedit.desktop (Jika Anda tidak dapat menemukannya di sana, buat duplikat yang ditemukan di sana /usr/share/applications/, dan simpan di lokasi baru ini) - Opsi menu hanya akan tersedia untuk pengguna yang ditentukan, dan dianggap sebagai "praktik yang lebih baik". Perhatikan bahwa jika Anda sudah merapat ke bilah Unity Anda, Anda harus memilih Unlock from Launcherikon GEdit yang ada, kemudian tambahkan kembali versi "kustom" Anda. Perubahan ini harus tetap ada walaupun GEdit mendapatkan pembaruan.

Edit file teks gedit.desktop, tambahkan blok kode berikut (Anda dapat menggunakan dua blok yang ada sebagai templat):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Selanjutnya, tambahkan tindakan baru ke daftar (harus di sekitar baris 19 dari file teks):

Actions=Window;Document;RootWindow;

Sekarang mengklik kanan jendela editor teks di Unity memunculkan opsi baru yang berguna ini:

Ubuntu Unity: Buka Gedit sebagai Root

IQAndreas
sumber
Saya juga memiliki pengaturan yang sama untuk membuka manajer file sebagai root, yang berjalan gksu nautilus.
IQAndreas
2

gksudo geditbekerja di 16,04 LTS, tetapi pada tahun 17,10 dengan Wayland gksudotidak berfungsi.

sudodus
sumber
2

Menggunakan admin:// di depan nama file yang menampilkan prompt kata sandi GUI standar untuk masing-masing WM / shell Anda.

Jadi misalnya, jika Anda ingin mengedit repo Anda, alih-alih mengetik sudo gedit /etc/apt/sources.listAnda akan mengetik gedit admin:///etc/apt/sources.list. Ini pada dasarnya berfungsi untuk semua program GUI, bukan hanya Gedit.

Brandon Giesing
sumber
Jawaban ini adalah cara yang benar untuk melakukannya sekarang. Jawaban yang diterima benar untuk versi Ubuntu sebelumnya (sebelum 17,04, saya pikir).
PJ Singh
0

Anda dapat membuka Nautilus sebagai root,, gksu nautilussekarang semua file teks yang Anda buka dari jendela itu akan terbuka di Gedit sebagai root.

pengguna154126
sumber
@ DavidFoerster tidak cukup, imo :-)
guntbert
0

gksudotampaknya tidak tersedia pada versi Ubuntu yang lebih baru dan gksutidak berfungsi untuk saya, tetapi jawaban ini sangat membantu dalam kasus saya (Ubuntu 17.04).

Gunakan visudountuk menambahkan baris berikut ke file konfigurasi sudo Anda:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
jtpereyda
sumber
0

EDITOR=gedit sudo -e direkomendasikan.

funicorn
sumber