Tidak dapat terhubung ke X Server saat menjalankan aplikasi dengan sudo


29

Ketika saya menjalankan beberapa perangkat lunak menggunakan sudoperintah itu menampilkan kesalahan seperti

cannot connect to X server

Sebagai contoh jika saya menjalankan perintah berikut:

$ sudo gedit /etc/profile

Saya mendapatkan perintah berikut

(gedit:6758): WARNING **: Command line `dbus-launch --autolaunch=84b871d735f31ffe014dc9ba00000009 --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.

Atau jika saya menjalankan super-boot-managersaya mendapatkan kesalahan berikut

buc: cannot connect to X server

Tolong bantu.


Dari mana Anda lari super-boot-manger?
Thor

Pertama saya sudah mencoba lari super-boot-managerlangsung dari unity luncher, tidak berhasil. Lalu saya sudah mencobanya dari terminal, lalu saya pijit error itu.
Apurba

Seperti di terminal dalam lingkungan pengguna grafis? Apa: echo $DISPLAYkatakan? Anda harus menjalankannya tanpa sudosebagai super-boot-managerberjalan sudosecara internal.
Thor

echo $DISPLAYmemberi :0.0. Dan saya tidak menjalankan super-boot-managersebagai sudo. Saya menjalankan hanya menggunakan perintah super-boot-managerdari terminal.
Apurba

1
Akhirnya masalah terpecahkan. Saya baru saja menambahkan baris: Defaults env_keep="DISPLAY XAUTHORITY"di akhir visudo. Terima kasih untuk semua, khususnya @Thor untuk bantuan yang baik.
Apurba

Jawaban:


39

Anda perlu mengizinkan akses root ke server X:

xhost local:root

Dan arahkan perintah ke kanan DISPLAY:

sudo DISPLAY=$DISPLAY gedit /etc/profile

Itu memecahkan masalah dengan pembukaan geditsebagai sudo, tetapi masih tidak bisa makan siang super-boot-manager. Ini menunjukkan kesalahan yang sama
Apurba

15

Akhirnya masalah terpecahkan. Saya baru saja menambahkan baris:

Defaults env_keep = "DISPLAY XAUTHORITY"

di akhir visudo.

Untuk melakukan itu Anda harus menjalankan

sudo visudo

itu akan membuka file kemudian menambahkan baris di atas di akhir.

Terima kasih untuk semua, khususnya @Thor untuk bantuan yang baik


1
Defaults env_keep = "DISPLAY" bekerja untuk saya.
bagustris

Saya telah mencari tinggi dan rendah untuk jawaban ini selamanya. Saya berharap saya bisa menjawab Anda berdua beberapa kali untuk jawaban Anda. Terima kasih banyak! :)
Ev-

4

Melengkapi jawaban @ Thor:

Jalankan xhost local:rootsebelumnya sudo gedit. Untuk membuat ini permanen, tambahkan baris

xhost local:root

ke file ~ / .xinitrc 1 . Buat file jika tidak ada.


[1] https://askubuntu.com/a/720120/452398


Terima kasih telah memberikan jawaban yang memberikan solusi tidak permanen.
2NinerRomeo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.