आप MAXSYMLINKS कैसे बढ़ाते हैं


10

एक अजगर स्क्रिप्ट में, मैं प्रतीकात्मक लिंक का एक गुच्छा बना रहा हूं जो एक साथ जंजीर है।

उदाहरण: link1-> link2-> link3 -> .......-> somefile.txt

मैं सोच रहा था कि आप 20 से अधिक होने के लिए अधिकतम संख्या में सहजीवन कैसे बदल सकते हैं?


5
तुमने ऐसा क्यों करना चाहोगे? MAXSYMLINKS सिस्टम हेडर (जैसे /usr/include/x86_64-linux-gnu/sys/param.hमेरे सिस्टम पर) में परिभाषित किया गया है , और उपयोगकर्ताओं द्वारा संशोधित किए जाने का इरादा नहीं है।
ire_and_curses

1
एक वास्तविक फ़ाइल प्राप्त करने के लिए 20 से अधिक बार रीडिंक () कॉल करने के बाद प्रदर्शन के लिए अच्छा नहीं होने वाला है।
जोर्डनम

5
मैं स्कूल में एक एथिकल हैकिंग क्लास ले रहा हूं, जो बहुत अच्छा है। HACKS का एक हिस्सा TOCTTOU कहलाता है, जहां आप एक विस्तृत निर्देशिका / प्रतीकात्मक लिंक भूलभुलैया बनाकर प्रदर्शन को प्रभावित करना चाहते हैं।
grebwerd

जवाबों:


16

लिनक्स (3.5 कम से कम) पर, यह 40 (देखें ) follow_link()मेंfs/namei.c हार्डकोड किया गया है , और ध्यान दें कि यह लिंक की संख्या है जब किसी पथ के सभी घटकों को हल करते हैं, तो आप केवल कर्नेल को पुन: जमा करके इसे बदल सकते हैं।

$ ln -s . 0
$ n=0; repeat 50 ln -s $((n++)) $n
$ ls -LdF 39
39/
$ ls -LdF 40
ls: cannot access 40: Too many levels of symbolic links
$ ls -LdF 20/18 10/10/10/6
10/10/10/6/  20/18/
$ ls -LdF 20/19 10/10/10/7
ls: cannot access 20/19: Too many levels of symbolic links
ls: cannot access 10/10/10/7: Too many levels of symbolic links
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.