/Lib64/ld-linux-x86-64.so.2 क्या है और इसका उपयोग फ़ाइल को निष्पादित करने के लिए क्यों किया जा सकता है?


17

हाल ही में, मैंने एक तरकीब सीखी है कि यदि किसी फ़ाइल में निष्पादन योग्य अनुमतियों का अभाव है, तो हम उस फ़ाइल का उपयोग करके चला सकते हैं /lib64/ld-linux-x86-64.so.2

उदाहरण के लिए, के लिए x अनुमति को पुनर्स्थापित करने के लिए

-rw-r--r-- 1 root root 59K Mar  1  2017 /bin/chmod

हम दौड़ सकते हैं

/lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod

मैं वास्तव में नहीं जानता कि यह कैसे किया जा सकता है, यह एक नियमित सामान नहीं है, इस तरह का रहस्य।

जवाबों:


18

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

उपयोग: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]

आपने साझा लाइब्रेरी निष्पादकों के लिए सहायक प्रोग्राम 'ld.so' को लागू किया है। यह प्रोग्राम आमतौर पर फ़ाइल में रहता है /lib/ld.so, और ELF साझा पुस्तकालयों का उपयोग करते हुए निष्पादन योग्य फ़ाइलों में विशेष निर्देश इस फ़ाइल से सहायक प्रोग्राम को लोड करने के लिए सिस्टम के प्रोग्राम लोडर को बताता है। यह सहायक प्रोग्राम प्रोग्राम द्वारा निष्पादित साझा पुस्तकालयों को लोड करता है, प्रोग्राम को चलाने के लिए तैयार करता है, और इसे चलाता है। आप इस हेल्पर प्रोग्राम को सीधे कमांड लाइन से लोड करने और एक ईएलएफ निष्पादन योग्य फ़ाइल चलाने के लिए आमंत्रित कर सकते हैं; यह उस फ़ाइल को निष्पादित करने जैसा है, लेकिन आपके द्वारा बताई गई निष्पादन योग्य फ़ाइल में निर्दिष्ट सहायक प्रोग्राम फ़ाइल के बजाय, हमेशा आपके द्वारा निर्दिष्ट फ़ाइल से इस सहायक प्रोग्राम का उपयोग किया जाता है। यह इस हेल्पर प्रोग्राम के नए संस्करणों का परीक्षण करने के लिए बनाए रखने के लिए ज्यादातर उपयोग किया जाता है; संभावना है कि आप इस कार्यक्रम को चलाने का इरादा नहीं रखते।

लिंकर का उपयोग गतिशील रूप से जुड़े कार्यक्रमों को चलाने के लिए किया जाता है। जब आप दौड़ते हैं chmod, तो कर्नेल प्रभावी रूप से चलता है /lib64/ld-linux-x86-64.so.2 chmod, जैसा कि आपने मैन्युअल रूप से किया था; यदि chmodबाइनरी निष्पादन योग्य नहीं है तो भी बाद वाला काम करता है।

आपको इस पर बहुत अधिक विस्तार मिलेगा कि कैसे उत्कृष्ट कार्यक्रम चलते हैं: ईएलएफ बायनेरिज़ लेख।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.