वैसे शायद यह एक कल्पना है, लेकिन कई लोग एक ही बात कह रहे हैं:
मुझे sudo के बजाय Gtk ऐप्स के लिए gksudo का उपयोग क्यों करना चाहिए?
हालांकि, अन्य समय भी हैं, जब साइड इफेक्ट फ़ायरफ़ॉक्स एक्सटेंशन के रूप में चिपके हुए या चरम के रूप में हल्के हो सकते हैं और किसी भी अधिक लॉग इन करने में सक्षम नहीं होने के कारण आपके।
ग्राफ़िकल एप्लिकेशन शुरू करने के लिए उपयोगकर्ताओं को सामान्य सूडो का उपयोग क्यों नहीं करना चाहिए?
मान लीजिए कि आप gedit (एक आलेखीय पाठ संपादक) को रूट के रूप में चला रहे हैं। यदि आप sudo gedit चलाते हैं, तो होम आपके होम डायरेक्टरी की ओर इंगित करता रहेगा, भले ही प्रोग्राम रूट के रूप में चल रहा हो। नतीजतन, gedit आपके घर निर्देशिका में रूट के रूप में कॉन्फ़िगरेशन फ़ाइलों को लिखेगा। यह कभी-कभी रूट के स्वामित्व वाली कॉन्फ़िगरेशन फ़ाइलों में परिणाम होगा और इस प्रकार आपके लिए अप्राप्य होगा (जब आप बाद में प्रोग्राम को स्वयं के रूप में चलाते हैं और रूट के रूप में नहीं)।
एक अलग उपयोगकर्ता (डेबियन) के रूप में GUI प्रोग्राम कैसे चलाएं?
सबसे पहले, एक ग्राफिकल प्रक्रिया को चलाने के लिए उपयोगकर्ताओं को बदलने के लिए sudo या su का उपयोग न करें, या आप लाइन के नीचे की समस्याओं के लिए उत्तरदायी हैं (~ / -सुविधाएँ बदलने वाला स्वामी एक उल्लेखनीय मुद्दा है)। इसके बजाय, एक शॉर्टकट बनाएं जो निम्नलिखित कमांड का उपयोग करता है:
सूडो को ग्राफिकल तरीके से चलाना
खैर, पूरी तरह से ईमानदार होने के लिए, अधिकांश समय ऐसा नहीं होता है। बहुत सारे अनुप्रयोगों के लिए, आप उन्हें अनुचित तरीके से चला सकते हैं - ग्राफिकल अनुप्रयोगों के लिए सुडो का उपयोग कर सकते हैं और कोई प्रतिकूल दुष्प्रभाव नहीं देख सकते हैं।
...
ये त्रुटियां इसलिए होती हैं क्योंकि कभी-कभी जब sudo
कोई एप्लिकेशन लॉन्च करता है, तो यह रूट विशेषाधिकारों के साथ लॉन्च होता है, लेकिन उपयोगकर्ता की कॉन्फ़िगरेशन फ़ाइल का उपयोग करता है।
यह मेल आर्काइव भी आपकी रुचि का हो सकता है।
तो, चलो इसे परीक्षण करते हैं।
2 ब्रांड नए वर्चुअल बॉक्स। उबंटू 14.04। उन पर कभी भी फ़ायरफ़ॉक्स न चलाएं। जब मैं कमांड चलाऊंगा तो क्या होगा sudo firefox
?
tim@Hairy14CVB:~$ sudo firefox
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
...
shutdownObserver@XPIProvider.jsm:2192:13
यह दोनों वर्चुअल बॉक्स के लिए समान (या कम से कम बहुत समान) है। जब फ़ायरफ़ॉक्स चल रहा था, मैंने एक यूट्यूब एक्सटेंशन स्थापित किया - एक विशेष रुप से प्रदर्शित। फिर मैंने फ़ायरफ़ॉक्स बंद कर दिया, और आउटपुट की जाँच की।
tim@Hairy14CVB:~$ ls -la .ICEauthority
-rw------- 1 tim tim 1336 Jun 4 21:31 .ICEauthority
ठीक है, .ICEauthority
ठीक है! तथापि...
tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 Jun 1 20:49 ..
drwx------ 3 root root 4096 Jun 5 22:41 .dbus
drwx------ 4 root root 4096 Jun 5 22:41 .mozilla
मेरे घर फ़ोल्डर (में 3 चीजें /home/tim/
) जड़ के स्वामित्व में हैं ( ..
, .dbus
और .mozilla
)। यह दोनों वर्चुअल बॉक्स के लिए समान (या कम से कम बहुत समान) है।
तो, क्या यह बात है। मुझे यकीन नहीं था, इसलिए मैंने फ़ायरफ़ॉक्स चलाया, जैसे:
tim@Hairy14CVB:~$ firefox
(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.
और यह बदसूरत त्रुटि:
पूर्ण टर्मिनल आउटपुट (फ़ायरफ़ॉक्स बेबल सहित) के लिए, इन दो पास्टबिन को, यहां और यहां देखें ।
मैं अभी भी रूट के रूप में फ़ायरफ़ॉक्स चला सकता हूं। लेकिन अब और फाइलें बदल दी गई हैं:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
drwx------ 3 root root 4096 Jun 5 22:55 .adobe
drwx------ 3 root root 4096 Jun 5 22:40 .dbus
drwx------ 3 root root 4096 Jun 5 22:55 .macromedia
drwx------ 4 root root 4096 Jun 5 22:40 .mozilla
क्या यह इसलिए था क्योंकि मैंने imgur.com पर एक छवि अपलोड की थी? निश्चित नहीं।
मैंने इसे कैसे ठीक किया? chown
। मुझे यह समझ में नहीं आता है, लेकिन इंटरनेट ने यह करने के लिए कहा, और यह एक आभासी बॉक्स है तो योलो।
sudo chown -R tim:tim /home/tim/
और यह तय है। अब आउटपुट सिर्फ ..
फाइल है:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
और मेरे वास्तविक कंप्यूटर पर भी ऐसा ही है। ओह, और मेरे कुबंटु वर्चुअलबॉक्स पर:
tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x 3 root root 4096 May 16 14:10 ..
जिस पर मैंने कभी भी sudo कमांड नहीं चलाया है। तो सब ठीक है। बस sudo
GUI एप्लिकेशन पर नहीं चलते हैं ।
अंतिम परीक्षण: इसे -H
और -i
झंडे के साथ चलाएं :
sudo -H firefox
तथा
sudo -i firefox
और अच्छी खबर है! फिर भी, एकमात्र जड़ "चीज" है ..
। और मैं firefox
बिना जड़ के दौड़ सकता हूं ।
ओपी चाहता है कि मैं गेदित के बारे में बात करूं।
मैं भागा
sudo gedit
फिर कुछ यादृच्छिक प्लगइन्स स्थापित किए। यह आउटपुट था:
tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
ध्यान दें कि मैं इसका स्वामित्व भी नहीं देख सकता .gvfs
इसलिए मैंने ऐसा किया:
tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x 4 root root 4096 Jun 3 19:46 ..
dr-x------ 2 root root 0 Jun 6 10:05 .gvfs
तो चल रहा sudo gedit
है मेरे घर निर्देशिका में एक फ़ाइल को रूट करने के लिए परिवर्तित करें।
मैं अभी भी गेडिट खोल सकता हूं, लेकिन इस बार मुझे कुछ कचरा मिलेगा:
(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.
और पता चलता है कि एक और फ़ाइल ( ~.local/share/recently-used.xbel
) है जिसे बदल दिया गया है। मुझे लगता है कि यह फ़ाइलों की हाल ही में उपयोग की गई सूची है और (भाग्यशाली अनुमान) अब मेरे पास हाल ही में उपयोग की गई फ़ाइलों की मेरी सूची नहीं है:
वहां एक फाइल होनी चाहिए जिसे बुलाया जाए output2.txt.save2
। मेरे सर्वनाम वह / उसके हैं