निर्देशिका में केवल पढ़ने के लिए लिंक कैसे बनाएं?


18

मेरी स्क्रिप्ट में से एक गतिशील रूप से एक सिमिलिंक बनाता है जैसे:

ln -s /home/hosting/projects/images /home/hosting/projects/demo/images

मैं इसे कैसे बना सकता हूं ताकि लिंक के माध्यम से पहुंच केवल पढ़ने के लिए हो?

जवाबों:


18

आप केवल पढ़ने के लिए बाइंड-माउंट बना सकते हैं ।

mount --bind /path/to/source/ /path/to/dest/
mount -o bind,remount,ro /path/to/dest

हां, यह लिनक्स कर्नेल के 2.6.25 (क्यों के लिए ऊपर लिंक देखें) के बाद कर्नेल में दो चरणों में किया जाना चाहिए।

या, वैकल्पिक रूप से, एक /etc/fstabलाइन उदाहरण रेफरी के रूप में :

/path/to/source/ /path/to/dest/ none bind,ro

या तो दृष्टिकोण में, एक बाइंड माउंट वर्चुअल फाइलसिस्टम लेयर (VFS) में रहता है, इसलिए यह किसी भी फाइलसिस्टम के लिए विशिष्ट नहीं है, न ही आप वास्तव में कुछ भी माउंट करते हैं। तो, मूल रूप से, यह आपके लिए एक प्रकार का प्रतीकात्मक लिंक बना रहा है, लेकिन यह इस तरह नहीं दिखता है।

और डेटा हानि पर नीचे टिप्पणी पर जवाब देने के लिए ... नहीं, ये निर्देश किसी भी फाइल को नहीं हटाते हैं। यदि आपके पास गंतव्य पथ पर मौजूद फ़ाइलें हैं, तो यह माउंट इस पर स्थित होगा। बस नीचे दिए गए फ़ाइल सिस्टम पर पथ में आपकी फ़ाइलों को सूचीबद्ध करने में सक्षम होने के लिए अनमाउंट करें। और भी बेहतर; सामान्य तौर पर, एक गैर-खाली गंतव्य पथ के शीर्ष पर बढ़ते से बचें।


1
सावधान रहे। इन चरणों का पालन किया और इसने मेरी पूरी बैकअप निर्देशिका को हटा दिया और इसे मेरे बैकअप डेमॉन द्वारा लिखने योग्य नहीं बनाया।

क्या आप कृपया इस समाधान को fstab प्रविष्टि के रूप में प्रदान कर सकते हैं?
थ्रॉज

@ थ्रूज़ वहाँ तुम जाओ;)
gertvdijk

रिमाउंट कमांड शायद होनी चाहिए: उसी धागे से lwn.net/Articles/637501mount -o bind,remount,ro /path/to/dest देखें ।
एनॉन

mount -o remount,ro /path/to/destमुझे निम्न त्रुटि देता है: mount: mount point is busy.@gertvdijk
alper

2

एक कमांड के साथ आसानी से बांधने के लिए माउंट:

mount --bind -r /path/to/source/ /path/to/dest/

अनमना करने के लिए

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