एक्स डिस्प्ले से कनेक्ट करने के लिए एक एक्स प्रोग्राम को दो टुकड़ों की जानकारी चाहिए।
इसे डिस्प्ले के पते की आवश्यकता होती है, जो आमतौर पर :0
जब आप स्थानीय रूप से लॉग इन करते हैं :10
, या :11
आदि, जब आप दूरस्थ रूप से लॉग इन होते हैं (लेकिन नंबर कितने एक्स कनेक्शन सक्रिय हैं इसके आधार पर बदल सकते हैं)। प्रदर्शन का पता सामान्य रूप से 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
गैर-एनएफएस फाइल सिस्टम पर फ़ाइल को किसी भिन्न स्थान पर कॉपी कर सकते हैं :
XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY
export $(dbus-launch)
या कर सकते हैंxhost [+]
।