โปรแกรม X ต้องการข้อมูลสองชิ้นเพื่อเชื่อมต่อกับจอแสดงผล X
มันต้องอยู่ของจอแสดงผลซึ่งโดยปกติ:0
เมื่อคุณเข้าสู่ระบบในท้องถิ่นหรือ:10
, :11
ฯลฯ เมื่อคุณเข้าสู่ระบบจากระยะไกล ( แต่จำนวนจะเปลี่ยนไปขึ้นอยู่กับจำนวนการเชื่อมต่อ X มีการใช้งาน) ปกติแล้วที่อยู่ของจอแสดงผลจะระบุไว้ในDISPLAY
ตัวแปรสภาพแวดล้อม
มันต้องการรหัสผ่านสำหรับการแสดงผล X รหัสผ่านจอแสดงผลจะเรียกว่าคุกกี้มายากล ไม่ได้ระบุคุกกี้เวทย์โดยตรง: พวกมันจะถูกเก็บไว้ในไฟล์ X Authority เสมอซึ่งเป็นชุดของเร็กคอร์ดของฟอร์ม“ display :42
มีคุกกี้123456
” โดยปกติไฟล์สิทธิ X จะระบุไว้ในXAUTHORITY
ตัวแปรสภาพแวดล้อม หากไม่มีการตั้งค่าโปรแกรมใช้$XAUTHORITY
~/.Xauthority
ดูเปิดหน้าต่างบนจอแสดงผล X ระยะไกล (ทำไม "ไม่สามารถเปิดจอแสดงผล") สำหรับรายละเอียดเพิ่มเติม
ในกรณีของคุณDISPLAY
ตั้งค่าไว้ แต่โปรแกรมไม่สามารถค้นหาไฟล์คุกกี้ได้อย่างชัดเจน ตรวจสอบค่าของในเซสชั่นของคุณและอยู่ภายใต้XAUTHORITY
su
หากXAUTHORITY
ไม่ได้ตั้งอยู่ในเซสชั่นของคุณและsu
กำหนดHOME
ตัวแปรสภาพแวดล้อมเพื่อไดเรกทอรีบ้านรากแล้วคุณจะต้องตั้งXAUTHORITY
ไป/home/msz/.Xauthority
ที่/home/msz
เป็นไดเรกทอรีที่บ้านของคุณ
หากsu
ลบออกXAUTHORITY
จากสภาพแวดล้อมให้นำมันกลับมาหรือกำหนดค่าsu
ไม่ให้ทำ
หากโฮมไดเร็กทอรีของคุณอยู่ในระบบไฟล์บางระบบเช่น NFS รูทอาจไม่สามารถอ่านได้โดยตรง ในกรณีนั้นคุณสามารถคัดลอก.Xauthority
ไฟล์ไปยังตำแหน่งอื่นบนระบบไฟล์ที่ไม่ใช่ NFS:
XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY
export $(dbus-launch)
หรือใช้xhost [+]
เพื่อเปิดโปรแกรมโดยใช้ X และบัญชี superuser ของคุณ