मैं इसके भीतर से एक निर्देशिका को चेरोट के बाहर कैसे एक्सेस कर सकता हूं?


33

मेरे पास एक उपयोगकर्ता है जो उसके घर निर्देशिका के लिए तैयार है, लेकिन मैं चाहता हूं कि वह भी फाइलों का प्रबंधन करने में सक्षम हो /var/www। जैसे, मैंने निम्नलिखित कार्य किया:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

हालाँकि, जब मैं /wwwFileZilla के साथ खोलने की कोशिश करता हूं तो यह "ऐसी कोई फ़ाइल या निर्देशिका नहीं" देता है। मैं लिंक की गई निर्देशिका देख सकता हूं, लेकिन मैं इसे एक्सेस नहीं कर सकता। मैं क्या गलत कर रहा हूं?

जवाबों:


52

Symlinks अनिवार्य रूप से एक अन्य फ़ाइल के लिए संकेत हैं, आप चेरोट के बाहर कुछ इंगित नहीं कर सकते क्योंकि यह उस नाम के साथ एक फ़ाइल की तलाश में है ( /var/www, जो कि चेरोट के अंदर मौजूद नहीं है)। दूसरी ओर हार्डलिंक इनोड के संकेत हैं। जैसे, यदि आप ऐसा करना चाहते हैं, तो आपको एक कड़ी को छोड़ कर उपयोग करने की आवश्यकता है -s। हालाँकि, आप विभिन्न कारणों से लिनक्स में एक निर्देशिका (अन्य से .और ..) को लिंक नहीं कर सकते हैं (मुख्य यह है कि उन फाइल सिस्टम एक डीएजी हैं )।

शायद सबसे अच्छा तरीका एक बाँध माउंट का उपयोग करना होगा। इसे इस्तेमाल करे:

mount --bind /var/www /home/username/www

ln: '/var/www': hard link not allowed for directory
डॉक्टर

7
@Doc - निर्देशिकाएँ लिनक्स में कड़ी नहीं हो सकती। एक बांध माउंट काम करना चाहिए।
क्रिस डाउन

1
क्या मैं इसे स्थिर करने के लिए इसे जोड़ सकता हूं?
कोर्नेल

क्या आप निर्देशिकाओं के माध्यम से पुनरावृत्ति कर सकते हैं और पेड़ को कड़ी से कड़ी कर सकते हैं? जैसे अगर माता-पिता के पास है /foo/a.txtऔर /foo/bar/b.txtआप कर सकते हैं mkdir -p ./chroot/foo/; mkdir -p ./chroot/foo/bar; ln /foo/a.txt ./chroot/foo/a.txt; ln /foo/bar/b.txt ./chroot/foo/bar/b.txt? या कि अभी भी किसी कारण से काम नहीं करेगा? (जाहिर है यह एक ऐसी चीज़ है जिसे आप हाथ से करने के बजाय करने के लिए स्क्रिप्ट लिखेंगे)।
छायाकार

1
@Kornel आप विकल्प noneके साथ मोड का उपयोग कर सकते हैं bind: serverfault.com/questions/613179/…
यवन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.