Tidak dapat membuka Gedit sebagai root

14

Ketika saya menjalankan sudo gedit /path/to/some/random/filesaya mendapatkan kesalahan berikut

** (gedit:6262): WARNING **: Command line `dbus-launch --autolaunch=7f8731869e1c690b8205727e0000000a --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Menggunakan gksudotidak membantu yang kembali

Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Ada yang membantu kawan. Saya perlu memiliki kemampuan ini untuk membuka file di Gedit sebagai root.
Saya menemukan pertanyaan ini dengan kesalahan yang sama tetapi tidak ada solusi Tidak dapat meluncurkan gedit dengan sudo


EDIT
Saya menemukan posting ini di Forum Ubuntu .
Ini adalah instruksinya:

  1. echo $ DISPLAY # Anda akan membutuhkan nilai ini 3 baris di bawah ini
  2. sudo -i # atau "su -" pada Slackwares yang lebih lama
  3. xauth menggabungkan ~ alien / .Xauthority # gunakan nama pengguna Anda di sini alih-alih "alien"
  4. export DISPLAY =: 0.0 # gunakan nilai DISPLAY yang pernah Anda lihat 3 baris sebelumnya

Saat datang ke perintah # 3, saya mendapatkan kesalahan ini
xauth: file /root/.Xauthority does not exist

Mungkin info baru ini bisa memberi lebih banyak cahaya.

Parto
sumber
Sudahkah Anda mencoba gksudo gedit /path/to/the/file/name?
AzkerM
@AzkerMohamed Yah, seperti pertanyaan saya, menggunakan gksudoatau gksumengembalikan kesalahan yang sama.
Parto
1
Tampaknya sama seperti ini askubuntu.com/questions/175611/…
user.dz
Saya telah membuat skrip untuk tujuan ini: gist.github.com/wachambo/bd22e12db2d5a46dc109bd0d553733be
Alejandro Blasco

Jawaban:

13

Akhirnya sudah menemukan jawaban. Dari pertanyaan ini Tidak dapat terhubung ke X Server saat menjalankan aplikasi dengan sudo dan terutama pertanyaan ini Kesalahan saat mencoba menjalankan aplikasi dengan sudo atau gksudo .

Saya menambahkan baris Defaults env_keep+="DISPLAY"ke akhir visudofile di /etc/sudoers.

Yay, saya sudo geditkembali!

EDIT

Sekali lagi mendapat kesalahan yang sama.

Melakukan riset lebih lanjut, terutama jawaban ini /ubuntu//a/137584/163331 dan menyadari bahwa saya harus menambahkan lebih banyak opsi ke visudofile. Alih-alih Defaults env_keep+="DISPLAY", saya menggunakan baris ini:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"
Parto
sumber
Mengapa menambahkan HOME ke env_keep?
muru
9

Menjalankan aplikasi antarmuka grafis apa pun sebagai root dapat mengakibatkan file korupsi, terutama jika aplikasi antarmuka grafis adalah editor teks. Selain itu gksudan gksudotidak berfungsi untuk memulai aplikasi grafis sebagai root di Wayland di Ubuntu 17.10: Mengapa gksu / gksudo tidak bekerja dengan Wayland? dan paket gksu telah dihapus dari repositori Ubuntu default di Ubuntu 18.04 dan yang lebih baru.

Nautilus Admin ( nautilus-admin ) adalah ekstensi Python sederhana untuk pengelola file Nautilus yang menambahkan beberapa tindakan administratif ke menu klik kanan:

  • Buka sebagai Administrator: membuka folder di jendela Nautilus baru yang berjalan dengan hak administrator (root).
  • Edit sebagai Administrator: membuka file di jendela Gedit yang berjalan dengan hak administrator (root).

Untuk menginstal Nautilus Admin di semua versi Ubuntu yang saat ini didukung buka terminal dan ketik:

sudo apt install nautilus-admin  

Meskipun ada perintah untuk menjalankan aplikasi grafis sebagai root, Anda sangat disarankan untuk menggunakan editor teks nano, yang biasanya dijalankan dari terminal, untuk mengedit file sebagai root. Editor teks nano termasuk dalam instalasi Ubuntu default.

Nano sangat mudah digunakan. Instruksi untuk menggunakan editor nano selalu ditemukan di bagian bawah setiap halaman. Satu-satunya dua pintasan keyboard nano yang perlu Anda ketahui adalah untuk WriteOut dan Keluar. Tekan kombinasi keyboard Ctrl+ Odan setelah itu tekan Enteruntuk menyimpan file yang sedang diedit. Tekan kombinasi keyboard Ctrl+ Xuntuk keluar dari nano.

Jika Anda terbiasa mengedit file sebagai root dengan cara yang benar, Anda akan mengurangi kemungkinan melakukan kesalahan yang mungkin sangat memakan waktu untuk diperbaiki.

karel
sumber
1
+1 untuk nanoeditor. Salah satu editor terbaik yang siapa pun dapat menemukan lebih mudah dioperasikan.
AzkerM
@ Karel Saya akhirnya menggunakan nano untuk melakukan perubahan tetapi saya perlu root Gedit saya kembali.
Parto
1
Ini saran yang bagus, tapi ini bukan jawabannya. Orang-orang Linux menyukai terminal, tetapi GUI sangat bagus untuk tugas-tugas kompleks dan memiliki UX yang lebih baik.
azerafati
Anda dapat menyesuaikan editor default dari sudoeditperintah (yang secara default adalah nano): Bagaimana saya bisa mengubah editor default dari perintah sudoedit menjadi vim? tetapi memulai editor GUI sebagai root dapat menyebabkan masalah di Ubuntu 17.10 dan kemudian dengan wayland.
karel
5

Di Ubuntu 17.10, setidaknya, Anda bisa melakukan ini:

gedit admin:///path/to/some/random/file

Anda akan diminta memasukkan kata sandi, dan kemudian file akan dibuka untuk diedit sebagai root.

Gunnar Hjalmarsson
sumber
Bekerja di bawah 18,04 juga ...
Penatua Geek
4

Untuk gedit, coba ini:

sudo -H env DISPLAY=:0 gedit
kiri
sumber
1
Mendapatkan kesalahan yang sama.
Parto
1

Saya mencoba merangkum semua info dalam jawaban lain di halaman ini:

Wayland:

Satu-satunya opsi terlihat menggunakan nanoatauvi/vim

Xorg:

coba ini

sudo -H env DISPLAY=:0 gedit

jika berfungsi mungkin ini berarti Anda perlu menambahkan beberapa opsi ke file konfigurasi sudo

sudo visudo

Coba tambahkan baris ini di akhir

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`
Postadelmaga
sumber
Mengapa menambahkan HOME ke env_keep?
muru
geditberfungsi dengan baik di Wayland. Silakan lihat jawaban yang baru saja saya posting.
Gunnar Hjalmarsson
0

Saya hanya punya masalah serupa. Saya menggunakan Debian Jessie dan untuk memulai gedit sebagai root, baris ini akhirnya bekerja:

sudo -H gedit
Paul Free
sumber