ग्राफ़िकल एप्लिकेशन अक्सर उपयोगकर्ता के होम फ़ोल्डर के अंदर लिखी गई कॉन्फ़िगरेशन फ़ाइलों में सेटिंग्स और अन्य उपयोगकर्ता-विशिष्ट डेटा संग्रहीत करते हैं । मुख्य तंत्र अनुप्रयोग यह निर्धारित करने के लिए उपयोग करते हैं कि उन्हें उपयोगकर्ता के होम फ़ोल्डर के रूप में क्या उपयोग करना चाहिए HOME पर्यावरण चर है । (आप इसे स्वयं के साथ निरीक्षण कर सकते हैं echo $HOME)।
मान लीजिए कि आप gedit(चित्रमय पाठ संपादक) के रूप में चल रहे हैं root। आप चलाते हैं sudo gedit, HOMEकी ओर इंगित करने के लिए जारी रहेगा अपने घर निर्देशिका, भले ही कार्यक्रम चल रहा है के रूप मेंroot । नतीजतन, अपने घर निर्देशिका के रूप में geditविन्यास फाइल लिखेंगे । यह कभी-कभी कॉन्फ़िगरेशन फ़ाइलों के स्वामित्व में होगा और इस तरह आपके लिए अप्राप्य होगा (जब आप बाद में कार्यक्रम को खुद के रूप में चलाते हैं और जैसा नहीं )। यह मुख्य रूप से तब होता है जब एप्लिकेशन को एक नई कॉन्फ़िगरेशन फ़ाइल बनानी होती है। नई बनाई गई फ़ाइलें, डिफ़ॉल्ट रूप से, उपयोगकर्ता द्वारा बनाई जाती हैं, जो उन्हें बनाता है (जो इस मामले में है , आप नहीं)।rootrootrootroot
यही प्राथमिक कारण है कि आपको sudoसीधे के बजाय ग्राफ़िकल फ्रंटेंड के साथ ग्राफ़िकल एप्लिकेशन चलाना चाहिए sudo। उबंटू और इसके अधिकांश डेरिवेटिव (जुबांट और लुबंटू सहित) में, मानक ग्राफिकल फ्रंटेंड gksu/ हैgksudo । कुबंटु में यह है kdesudo। (यह उपयोग किए जा रहे डेस्कटॉप वातावरण पर निर्भर करता है।)
यदि आप एक ग्राफिकल एप्लिकेशन को चलाने के लिए सीधे उपयोग करना चाहतेsudo हैं gedit, तो आप चला सकते हैं:
sudo -H gedit
-Hझंडा बनाता sudoसेट HOMEकरने के लिए बात करने के लिए rootघर फ़ोल्डर (जो /root)।
यह अभी भी स्वचालित रूप से .Xauthorityइसे एक अस्थायी फ़ोल्डर में कॉपी करके स्वामित्व को संभाल नहीं करेगा (यह दूसरी बात है कि चित्रमय sudoदृश्य आपके लिए ध्यान रखते हैं)। लेकिन उस अपरिहार्य घटना में जो .Xauthorityदुर्गम है, आपको यह कहते हुए एक त्रुटि मिलेगी और फिर आप इसे हटाकर ( sudo rm ~/.Xauthority) को हटाकर समस्या को ठीक कर सकते हैं , क्योंकि यह स्वचालित रूप से पुनर्जीवित है। इस प्रकार, .Xauthorityकॉन्फ़िगरेशन फ़ाइलों के स्वामित्व और अनुमतियों की सुरक्षा की तुलना में स्वामित्व और अनुमतियों की सुरक्षा कम महत्वपूर्ण है।
एक rootविख्यात के विपरीत .Xauthority, जब कॉन्फ़िगरेशन फ़ाइलों के स्वामित्व में हो जाता है root, तो यह हमेशा स्पष्ट नहीं होता है कि समस्या क्या है (क्योंकि चित्रमय कार्यक्रम अक्सर चलेंगे, लेकिन बहुत अच्छी तरह से काम नहीं करते हैं, और कंसोल के लिए किसी भी उपयोगी त्रुटियों को आउटपुट करते हैं)। और कभी-कभी इसे ठीक करने के लिए एक बड़ा झंझट होता है, खासकर यदि आप ऐसी स्थिति में हैं जहां आप चाहते हैं कि आपके घर की निर्देशिका में एक या एक से अधिक फाइलें आपके अलावा किसी और के पास हों (क्योंकि तब आप इसे केवल chownअपनी सभी फ़ाइलों को पुन: प्राप्त करने से ठीक नहीं कर सकते हैं अपने आप से वापस)।
इसलिए, जब तक आप एप्लिकेशन के आंतरिक कामकाज से अत्यधिक परिचित नहीं होते हैं और यह सुनिश्चित करने के लिए जानते हैं कि यह किसी भी कॉन्फ़िगरेशन फ़ाइलों को लिखने का प्रयास नहीं करता है, तब तक ग्राफ़िकल एप्लिकेशन को चलाने के लिए sudo(कम से कम बिना -H) का उपयोग नहीं किया जाना चाहिए ।