मैंने बस एक चोद चोद-चोद कर कर दिया


27

तो मैंने ए chmod -x chmod। मैं इस समस्या को कैसे ठीक कर सकता हूं? मैं चोमॉड को वापस निष्पादित अधिकार कैसे दे सकता हूं?


10
आप गलती से पूरे chmod!
थानातोस

जवाबों:


43

लिनक्स में:

/lib/ld-linux.so.2 /bin/chmod +x /bin/chmod

http://www.slideshare.net/cog/chmod-x-chmod


bindbn, मैं उसी लिंक को पोस्ट करने वाला था :-) लेकिन मैं खुद को पढ़ रहा था क्योंकि मैं यूनिक्स / लिनक्स सामान के लिए नया हूँ !!!
रीहटम

2
64-बिट डिस्ट्रो पर, आपको /lib64/ld-linux-x86-64.so.2इसके बजाय उपयोग करना पड़ सकता है । ldd /bin/chmodकौन सा लिंकर चलाने के लिए सूची चाहिए।
गोल्डस्कूडो

मैं एक न्यूनतम कार्यक्रम लिखूंगा जो कि chmod (2) का उपयोग करता है, लेकिन यह कूलर है
adamo

1
@Stefan: से man ld-linux.so: "ld.so [और ld-linux.so] एक कार्यक्रम के लिए आवश्यक साझा पुस्तकालयों को लोड करता है, कार्यक्रम को चलाने के लिए तैयार करता है, और फिर इसे चलाता है।" ( ld.soके लिए है a.outप्रारूप निष्पादनयोग्य और ld-linux.soELF प्रारूप के लिए है।)
अगली सूचना तक रोका गया।

1
@Stefan: कर्नेल वास्तव में गतिशील रूप से जुड़े निष्पादनयोग्य को लोड करना और निष्पादित करना नहीं जानता है, क्योंकि यह अत्यधिक जटिल है और कर्नेल का अनुसरण करता है, न कि कर्नेल का। ld-linux.soनिष्पादन योग्य / पुस्तकालय हाइब्रिड की तरह, सांख्यिकीय रूप से जुड़ा हुआ है, उपयोगकर्तास्पेस में चलता है, और गतिशील रूप से जुड़े निष्पादनयोग्य और उनके सभी आश्रितों को लोड करने के लिए जिम्मेदार है, फिर उन्हें चला रहा है।
पीटर


18

यह इस तथ्य पर निर्भर करता है कि गंतव्य फ़ाइल की अनुमति स्रोत फ़ाइल के बजाय संरक्षित है जब इसे कॉपी किया जा रहा है। हम "की अनुमति" उधार ले रहे हैं ls:

cp /bin/ls /tmp/chmod.tmp
cp /bin/chmod /tmp/chmod.tmp
mv /tmp/chmod.tmp /bin/chmod

मुझे लगता है कि आपकी पहली cp-p फ्लैग ऑन करने की जरूरत है
राईकिंग

@ बाइकिंग: यह इस उद्देश्य के लिए आवश्यक नहीं है।
अगली सूचना तक रोक दिया गया।

यह उस समाधान के समान था जिसे मैं लेकर आया था, लेकिन cpनिष्पादन योग्य होने के बाद , मैं सिर्फ टेम्प फाइल में catसामग्री को घेर रहा हूं chmod
वर्तनी



5

यह अजीब है ... मैंने कुछ दिनों पहले किसी के ट्वीट के माध्यम से ऐसा कुछ देखा था ...

http://www.slideshare.net/cog/chmod-x-chmod


अन्य साइटों के लिंक सहायक नहीं हैं क्योंकि लिंक किसी बिंदु पर टूट जाएगा। यह किसी को उत्तर बताने के लिए Google की तरह है।
फिल हेनेंट

@ पील हेंनट: मैंने वह स्लाइड शो भी देखा है, सिर्फ तीन दिन पहले, इसलिए यह मेरा पहला विचार था, अगर ओपी वहाँ आवेदकों में से एक था।
बोल्ड्यूवेन

वही, अभी कुछ दिन पहले रेडिट पर यह देखा ...
Dentrasi

4

क्या आपको ऐसे सिस्टम पर होना चाहिए जहां /bin/chmodडायनेमिक लिंकर द्वारा लोड नहीं किया जा सकता है:

# /bin/mv /bin/chmod /bin/chmod.tmp
# install -p -m 755 /bin/chmod.tmp /bin/chmod

यह मेरे मैकओएस एक्स सिस्टम पर काम करता है।


2

/ बचाव / chmod 555 / बिन / chmod

मुझे लगता है कि आप mtree का भी उपयोग कर सकते हैं।


यह मेरा पसंदीदा समाधान होगा। यह दुर्भाग्य से लिनक्स के साथ काम नहीं करता है।

2

मुझे संदेह है कि यह एक वास्तविक प्रश्न नहीं है: http://www.slideshare.net/cog/chmod-x-chmod

  • स्थापना रद्द करें: sudo apt-get install --reinstall coreutils
  • perl -e 'chmod 0755, "chmod"'
  • स्लाइड्स में और उदाहरण

1

एक नया chmod बनाएँ और मूल के लिए उपयोग करें

umask 000
cat chmod > ~/my-chmod
~/my-chmod a+x chmod

000 का एक umask सेट करने पर फ़ाइल के निष्पादन की अनुमति नहीं दी जाएगी जब इसे बनाया जाता है। यह, सबसे अच्छा, rw-rw-rw- अनुमतियां प्राप्त करेगा।
बैरी ब्राउन

2
@ बैरी: यह वास्तव में जीव (2) / ओपन (2) / mkdir (2) / etc को दिए गए मोड पर निर्भर करता है। यदि umask == 0 और फ़ाइल बनाने वाले syscall को मोड के लिए 0777 दिया गया है, तो फ़ाइल में निष्पादित बिट्स चालू होंगे। उदाहरण के लिए, लिंकर्स / कंपाइलर 0777 पास करते हैं जब एक "निष्पादन योग्य फ़ाइल" लिखते हैं (जैसे कि मोड 777 के साथ (umask 000;gcc -o foo foo.c)उत्पादन होगा foo)। हालाँकि, कई (सबसे?) गोले 0666 पास होते हैं जब वे पुनर्निर्देशन के लिए फाइल खोलते / बनाते हैं, जिसका अर्थ है कि यह उत्तर कई गोले के तहत काम नहीं करने वाला है।
क्रिस जॉन्सन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.