गेडिट सूडो के साथ प्रयोग किए जाने पर क्या विशिष्ट खराब चीजें होती हैं?


10

मैंने इस उत्तर को यह समझाते हुए पढ़ा कि "कभी-कभी" रूट /home/$USERनिर्देशिका में कुछ कर सकता है ।

क्या कोई उदाहरण दे सकता है कि इसे कैसे साबित किया जाए। जब मैं वास्तव में कुछ बुरा होता है, तो बस एक टेस्ट केस देता हूं, जब मैं दौड़ता हूं

sudo gedit /etc/rc.local

फ़ाइल संपादित करें और सहेजें।

मुझे ओपी को बाहर निकालने में मदद करने की कोशिश में कई डाउनवोट मिले और टिप्पणियों में यह कहते हुए बाढ़ आ गई कि सूडो के साथ गेडिट चलाना अपराध है।

क्या कोई वास्तविक उदाहरण दे सकता है?

मैंने स्पष्ट रूप से बताया कि यह प्रश्न डुप्लिकेट क्यों नहीं है। लिंक किए गए प्रश्न के लिए gedit के लिए कोई उत्तर विशिष्ट नहीं है।

और यह स्पष्ट करना महत्वपूर्ण है कि व्यापक रूप से उपयोग क्यों sudo geditबुरा है, या वास्तव में नहीं है, आदि।


2
हमेशा सुडोल के साथ इसका इस्तेमाल किया, कभी कोई समस्या नहीं हुई। अच्छा प्रश्न।
दारियो सालवती

1
@Wilf, नैनो को ~ / .nano_history लिखना पसंद है, जिसे यदि आप इसे sudo के साथ चलाते हैं, तो फ़ाइल को रूट के स्वामित्व में रखा जाता है, इसलिए जब आप नैनो को sudo के बिना चलाते हैं, तो यह शिकायत करता है कि यह फ़ाइल तक नहीं पहुंच सकता है। एक साधारण sudo chownइसे ठीक करता है।
सासनी

1
जहाँ तक rc.local जाता है, यह एक रन स्तर की स्क्रिप्ट है, इसे रूट द्वारा स्वामित्व में होना चाहिए इसलिए sudo का इस पर कोई प्रभाव नहीं है। इसे ~ / .bashrc के साथ आज़माएँ। मुझे नहीं लगता कि शेल उस फ़ाइल को स्वीकार करेगा यदि यह रूट के स्वामित्व में है और इसे डिफ़ॉल्ट सेटिंग्स पर वापस लौटना चाहिए। लेकिन यह सिर्फ एक सुझाव है। मैं कल वापस आऊंगा, देखें कि यह सवाल कैसे होता है
सर्जियो कोलोडियाज़नी

1
अधिकांश संपादकों के लिए यह उद्घाटन नहीं है, इसका दबाव SAVE है। mOst editros कहीं भी सेटिंग को सेव करते हैं, इसलिए यदि आप सेटिंग्स को संशोधित करते हैं, तो यह उन्हें अपडेट करता है।
विल्फ

2
इसके लायक होने के लिए, मैं इसे -Hदेखने के लिए उपयोग करने के लिए इसे केवल जगह में संपादित करता हूं।
मुरु

जवाबों:


11

जहाँ तक sudo gedit, कुछ भी नहीं, बस खराब अभ्यास, विशेष रूप से देर से। यह सुझाव देना कितना कठिन होगा sudo -H gedit?

-H,--set-home अनुरोध करें कि सुरक्षा नीति लक्ष्य उपयोगकर्ता के पासवर्ड डेटाबेस प्रविष्टि द्वारा निर्दिष्ट घर के वातावरण में गृह परिवेश चर सेट करें। नीति के आधार पर, यह डिफ़ॉल्ट व्यवहार हो सकता है।

क्या होता है?

आपको अपने होम फ़ोल्डर में रूट स्वामित्व वाली फ़ाइलों की एक जोड़ी मिलती है। एक ( recently-used.xbel) की संभावना उपयोगकर्ता के स्वामित्व में वापस आ जाएगी। यह तब हो सकता है जब कोई फ़ाइल हटा दी जाती है और फिर से बनाई जाती है। यह देखने के लिए कि क्या sudo geditबदल गया है, दौड़ें find ~ -user root -group rootऔर देखें कि क्या लौटा है। डिफ़ॉल्ट रूप से, यह कुछ भी नहीं होना चाहिए।

उस आदेश के साथ, आपको रूट के स्वामित्व वाली कुछ फ़ाइलें दिखाई दे सकती हैं। एक एक नया .file, .gvfsऔर जल्द ही या बाद में एक रूट-स्वामित्व ~/.cache/dconfऔर पूर्वोक्त होगा recently-used.xbel

तो कोई 'आकाश विफल हो रहा है' सामान है, लेकिन अभी भी। अब ऐसी रिपोर्टें आई हैं जो लगातार उपयोग अन्य मुद्दों का कारण बनती हैं, लेकिन यह दावा करने के लिए नहीं जा रही हैं कि मैं यहां क्या देख रहा हूं।

यह भी ध्यान दें कि 13.10 के रूप में sudo geditरूट के gedit कॉन्फिगर के बजाय उपयोगकर्ता के gedit कॉन्फिगर का उपयोग करेगा। फिर बस बुरा अभ्यास तो ऐसा क्यों करना जारी रखें या दूसरों को ऐसा करने का सुझाव दें?


1
कभी-कभी मैं अब उपयोगकर्ताओं को यह दिखाने का अवसर भी लेता हूं कि नैनो का उपयोग कैसे किया जाए क्योंकि यह आसान है और अधिकांश समय गेडिट को दबा सकता है। हालांकि ऐसे कुछ मामले हैं, जहां गेडिट अभी भी नैनो से बेहतर है, यहां तक ​​कि उन लोगों के लिए भी जो जानते हैं कि कैसे उपयोग करना है। इसके अलावा sudo gedit से sudo nautilus हो सकता है जो शायद और भी बुरा है .. (यहाँ मेरे पास pkexec सक्षम gedit है, लेकिन इस चर्चा के दायरे से परे है
doug

@wandrearea, अच्छा लगता है, संपादित
doug

12

वैसे शायद यह एक कल्पना है, लेकिन कई लोग एक ही बात कह रहे हैं:

  • मुझे 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 कमांड नहीं चलाया है। तो सब ठीक है। बस sudoGUI एप्लिकेशन पर नहीं चलते हैं ।

अंतिम परीक्षण: इसे -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। मेरे सर्वनाम वह / उसके हैं


1
आपने सब कुछ लिखा लेकिन सवाल का जवाब। बस gedit के साथ एक टेस्ट केस दें। क्या मुझे "एक उत्तर नहीं" के रूप में ध्वज लगाना चाहिए? या "बहुत खराब गुणवत्ता" हालांकि लंबे समय तक?)))
पायलट

5
@ Pilot6 - सवाल में Can anyone give an example how to prove it ..... Can anyone give a real example?- और यह पिछले सामानों से जुड़ता है और उदाहरण देता है कि फ़ायरफ़ॉक्स के साथ क्या हो सकता है? be be cm cmon :)
विल्फ

1
ओह कृपया उपयोग न करें या ls -la|grep rootतो find . -uid 0याfind . -user root
solsTiCe

1
@ पायलट 6 ठीक है, मैंने gedit के बारे में कुछ चीजें शामिल करने के लिए संपादन किया है। मुझे नहीं लगता कि यह मेरे जवाब में कुछ भी जोड़ता है, लेकिन आप ऐसा चाहते हैं ...
टिम

4
उद्धरण और विस्तृत उदाहरण दोनों ही इसे अति-उपयोगी बनाते हैं! मुझे खुशी है कि आपने Gedit को जोड़ा है लेकिन मैं @Wilf से सहमत हूं कि यह पहले भी अच्छा था। यह केवल Gedit उदाहरण नहीं है कि मैंने (जानबूझकर) वहां शामिल नहीं किया । यदि लोग चाहें, तो मैं "कभी-कभी" के बारे में एक छोटा नोट जोड़ सकता हूं, लेकिन मुझे वास्तव में लगता है कि यह प्रश्न अलग है और मैंने फिर से खोलने के लिए मतदान किया है । यदि हम इसे फिर से खोलते हैं, तो मैं कोशिश करूंगा और Gedit के बारे में अधिक जानकारी के साथ एक और उत्तर जोड़ूंगा, लेकिन यह अभी भी अधिकांश लोगों के लिए सबसे उपयोगी उत्तर होगा।
एलिया कगन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.