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.

Apurba
sumber
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
Thor
sumber
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

Apurba
sumber
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

adabru
sumber
Terima kasih telah memberikan jawaban yang memberikan solusi tidak permanen.
2NinerRomeo