gksu: Gtk-WARNING **: ไม่สามารถเปิดจอแสดงผล:: 0


40

gksu ในทันใดทั้งหมดหยุดทำงานให้ฉัน:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0

เช่นเดียวกันกับgparted-pkexec:

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0

สิ่งที่อาจทำให้เกิดสิ่งนี้?

ฉันไม่ได้ใช้งานผ่าน SSH หรือ VNC นี่คือ localhost ในหน้าต่างเทอร์มินัลปกติ


คุณไม่ทำงานในส่วนต่อประสานกราฟิกกับผู้ใช้หรือพยายามรันโปรแกรมบนระบบ (เช่นผ่าน ssh) ที่ไม่มีส่วนต่อประสานกราฟิก
AB

1
@AB ฉันควรชี้แจงว่านี่ไม่ใช่ผ่าน ssh มันอยู่ในโฮสต์ในหน้าต่างเทอร์มินัลปกติมาก การเปิด Infact gparted จากเมนูแอปพลิเคชันมีผลลัพธ์เหมือนกัน
d_inevitable

คุณไม่จำเป็นต้องใช้gksuเพื่อเรียกใช้ GParted gpartedใช้ polkit เพื่อรับสิทธิ์ยกระดับ
muru

@muru เมื่อฉันวิ่งgpartedโดยไม่gksuได้รับRoot privileges are required for running gparted.
d_inevitable

ตกลงลองgparted-pkexec(ไม่gksu) gksu gpartedbinหรือ
muru

คำตอบ:


66

หากใช้งาน Ubuntu 17.10 หรือใหม่กว่าปัญหานี้อาจเกิดขึ้นเมื่อแอปพลิเคชันไม่ได้รับการอัพเดตด้วยการสนับสนุนอย่างเต็มที่สำหรับ Wayland เพื่อเป็นการแก้ปัญหาจนกว่าแอปพลิเคชันจะได้รับการอัปเดตคุณสามารถเรียกใช้

xhost +SI:localuser:root

ซึ่งจะอนุญาตให้rootผู้ใช้แสดงแอปพลิเคชันบนเดสก์ท็อปของคุณ โปรดดูคำถามและคำตอบเกี่ยวกับวิธีแก้ปัญหาอื่น ๆ ที่เป็นไปได้: ทำไม gksu / gksudo หรือเปิดตัวแอปพลิเคชันกราฟิกที่มี sudo ทำงานร่วมกับ Wayland ไม่ได้

แหล่ง


@MDMower ขอบคุณสำหรับการแก้ไขเรียนรู้สิ่งใหม่ =)!
Cutton Eye

@ pomsky ขอบคุณสำหรับการเพิ่มลิงค์;)!
Cutton Eye

ใน 18.04 X-Org จะถูกใช้อีกครั้งเป็นค่าเริ่มต้น ดังนั้นปัญหานี้จึงควรเป็นไปตาม ดู
Cutton Eye

11

ลองเรียกใช้xhost +localhostในเทอร์มินัลแล้วเรียกใช้คำสั่งอีกครั้ง วิธีนี้ช่วยให้ผู้ใช้ทุกคนในระบบของคุณ (เช่นรูท) เปิดหน้าต่างบนหน้าจอของคุณ ตรวจสอบให้แน่ใจว่าใช้ + localhost และไม่ใช่แค่ + เพราะปลอดภัยกว่าที่จะอนุญาตการเชื่อมต่อจาก localhost เท่านั้นมากกว่าจากที่ใดก็ได้

หากต้องการทำให้ถาวรให้แก้ไข~/.xinitrcไฟล์ดังนี้:

วิ่ง gedit ~/.xinitrc

แก้ไขไฟล์เพื่อให้มีลักษณะเช่นนี้ (ควรจะว่างเปล่าตอนเริ่มต้น):

#! /bin/bash
xhost +localhost &

ตอนนี้บันทึกไฟล์ออกจากระบบและเข้าสู่ระบบตอนนี้ทุกอย่างควรทำงานได้ดีกับ sudo

ฉันไม่สามารถทำซ้ำปัญหาของคุณใน 14.04 แต่สิ่งนี้ได้ผลสำหรับฉันในอดีตเมื่อ sudo / gksu โยนข้อผิดพลาดนี้

แหล่งที่มา:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession

1
มันใช้งานได้จริง นั่นหมายถึงข้อ จำกัด การควบคุมการเข้าถึงหรือไม่ ความคิดใด ๆ ที่ทำให้เกิดสิ่งนี้อาจเป็นอย่างไร
d_inevitable

ใช่มันเป็นคุณสมบัติด้านความปลอดภัยของ X มันอนุญาตให้มีการเชื่อมต่อจากผู้ใช้ของคุณไปยัง xserver จนกว่าฉันจะบอกเป็นอย่างอื่น ฉันไม่แน่ใจว่าทำไมมันถึงจำเป็นสำหรับแอพบางตัวและไม่ใช่แอปอื่น ๆ และฉันก็ไม่รู้ว่าทำไมมันถึงทำเพื่อทุกสิ่ง บางทีคุณอาจจะมีการรักษาความปลอดภัยและกระชับที่อื่น?
Mark Paskal

2
สิ่งนี้ทำให้เกิดข้อผิดพลาด: xhost: ไม่สามารถเปิดจอแสดงผล ""
IgorGanapolsky

5
เมื่อวันที่Redisxhost +local:มันก็แนะนำให้ใช้ หลังจากนั้นฉันสามารถเปิด gparted จากเทอร์มินัล แต่การใช้xhost +localhostไม่ได้ผล
rmin

1
แน่นอน! xhost +local:เหมืองคงที่! มันให้ผลผลิตnon-network local connections being added to access control listซึ่งเป็นสิ่งที่จำเป็น
lobner

5

ดำเนินการต่อไปนี้ในเครื่องของคุณ:

nano /home/user/.bashrc # user = name of your user

เพิ่มบรรทัดต่อไปนี้ในตอนท้าย

export XAUTHORITY=$HOME/.Xauthority

2
จะมีประโยชน์หากคุณสามารถเพิ่มคำอธิบายว่าวิธีนี้แก้ปัญหาได้หรือไม่และมีผลข้างเคียงที่ไม่พึงประสงค์หรือไม่?
เจฟฟ์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.