केवल लिखने की अनुमति वाला फ़ोल्डर बेकार है ... सही है?


10

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

filename | inode    
foo      | 111  
bar      | 222 

पढ़ने की अनुमति का मतलब है आप पढ़ सकते हैं (और सूची) कर सकते हैं तालिका के बाएं स्तंभ, लिखने जोड़ने और मेज पर प्रविष्टियों को हटाने, और करने की अनुमति मेल खाती है पर अमल inode के लिए फ़ाइल नाम से अनुवाद करने में सक्षम होने के लिए अनुमति मेल खाती है; यानी आप फ़ोल्डर की सामग्री का उपयोग कर सकते हैं।

मैंने कुछ प्रयोग किए, और परिणाम मेरे इस "विश्वदृष्टि" के अनुरूप हैं, लेकिन एक निष्कर्ष अपरिहार्य लगता है: कि अनुमतियों वाला एक फ़ोल्डर d-w-------पूरी तरह से बेकार है। विस्तृत करना: आप इसकी सामग्री को सूचीबद्ध नहीं कर सकते, आप अपने अंदर मौजूद किसी भी फाइल को नहीं पढ़ सकते (क्योंकि आप इनोड में नाम का अनुवाद नहीं कर सकते हैं), आप फ़ाइलों को हटा या नाम बदल या जोड़ नहीं सकते, क्योंकि फिर से इसका अनुवाद होगा। , और आप हार्डलिंक भी नहीं जोड़ सकते हैं (क्योंकि, मुझे पता है, इसका मतलब है कि एक नाम जोड़ने के साथ-साथ एक इनोड संख्या भी होगी, जिसका अर्थ है कि आप दोनों को जानते होंगे, जो बदले में, फिर से surmising, निष्पादन निष्पादन की अनुमति के उद्देश्य का उल्लंघन करता है। । और हां, अगर इस तरह के एक फोल्डर के अंदर फाइलें हैं , तो आप उस फोल्डर को डिलीट नहीं कर सकते, क्योंकि आप उसके कंटेंट को डिलीट नहीं कर सकते।

इसलिए ... मैं दो प्रश्न पूछना चाहूंगा:

  1. क्या यह मेरा उपमा सही है, या यह एक बड़ी गड़बड़ी है?
  2. पिछले उत्तर के बावजूद, क्या कोई ऐसी स्थिति है जहां वर्णित के साथ अनुमतियों वाला एक फ़ोल्डर होना उचित है?

3
यह हो सकता है कि हर संयोजन उपयोगी न हो। उदाहरण के लिए, अंग्रेजी में हमारे पास शब्द हैं, ये शब्द अक्षरों से बने हैं, सभी संयोजन मान्य शब्द नहीं बनाते हैं। जैसे aoeuidhtns
ctrl-alt-delor-Augor

इस तरह आप एक फ़ाइल नहीं बना सकते हैं? आप फाइलसिस्टम स्पेस और इनोड के लिए अनुरोध करते हैं, और अपनी निर्देशिका तालिका में नाम और इनकोड लिखने के बाद। आपके पास केवल समस्या होनी चाहिए कि एक ही नाम से 2 फाइलें हों लेकिन एक ही डायरेक्टरी में अलग-अलग इन ...
Hastur

@ हस्तूर: मैंने भी ऐसा सोचा था, लेकिन mkdir foo ; chmod 200 foo ; touch foo/barमेरे जाने के बाद touch: cannot touch ‘foo/bar’: Permission denied। यह तब भी होता है जब फू / बार पहले से मौजूद है। मैं बैश (आर्क लिनक्स) में परीक्षण कर रहा हूं।
wmnorth

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

हाँ, यह बेकार है। इनकोड रिज़ॉल्यूशन के लिए "x" और "r" के साथ-साथ निर्देशिकाओं की आवश्यकता होती है, इस प्रकार एक भी "rw" निर्देशिका बेकार है।
पीटर - मोनिका

जवाबों:


3

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

निष्पादन के बिना निर्देशिका की अनुमति लिखें, इसलिए बहुत बेकार है, क्योंकि आप कुछ भी नहीं लिख सकते हैं यदि आप इसके भीतर फ़ाइलों तक नहीं पहुंच सकते हैं।


1
  1. क्या यह मेरा उपमा सही है, या यह एक बड़ी गड़बड़ी है?

मुझे लगता है कि यह सही है, आपको एक फ़ोल्डर में लिखने में सक्षम होने के लिए wx अनुमति की आवश्यकता है।

  1. पिछले उत्तर के बावजूद, क्या कोई ऐसी स्थिति है जहां वर्णित के साथ अनुमतियों वाला एक फ़ोल्डर होना उचित है?

आपके पास एक ऐसी प्रक्रिया हो सकती है जो किसी फ़ोल्डर में जानकारी लिखती है और दूसरा उसका उपभोग करता है लेकिन आपको लेखक को उस स्थान पर संग्रहीत अन्य जानकारी को पढ़ने से रोकने की आवश्यकता है।

पहले वर्णित स्थिति स्वचालित गति प्रवर्तन इकाइयों में उपयोगी है। इस इकाइयों को एक सत्यापन प्रक्रिया से गुजरना होगा जहां राज्य अधिकारी को मिलावट की संभावनाओं को कम करना चाहिए। कुछ स्वचालित गति प्रवर्तन इकाइयों में एक बाहरी एसडी मेमोरी कार्ड होता है, जहां सिस्टम उल्लंघन रजिस्टर को संग्रहीत करता है। लेकिन यह एक "मैजिक" कॉन्फिगर फाइल को भी स्टोर कर सकता है जो सत्यापित यूनिट के व्यवहार को अवैध रूप से बदल देती है। इसलिए उल्लंघन रजिस्टर लिखने वाली प्रक्रिया एसडी मेमोरी कार्ड से कुछ भी पढ़ने में सक्षम नहीं होनी चाहिए।

यहाँ यह एक उदाहरण है, पहले केवल लिखने के साथ, फिर इसे wx के साथ कैसे काम करें:

एक डिवाइस माउंट करें

root@leon:/media# mount -o umask=527,uid=enforcer,gid=ftp /dev/sdb1 /media/pen/
root@leon:/media# ls /media/pen/ -la
total 44
d-w-r-x--- 10 enforcer ftp  4096 Dec 31  1969 .
drwxr-xr-x  8 root     root 4096 Oct 17 16:14 ..

तब उपयोगकर्ता एनफोर्सर के साथ एक नई फाइल लिखने की कोशिश करता है

enforcer@leon:~$ touch /media/pen/hola
touch: cannot touch ‘/media/pen/hola’: Permission denied

unmount और wx के साथ रिमाउंट करें

root@leon:/media# umount /dev/sdb1
root@leon:/media# mount -o umask=427,uid=enforcer,gid=ftp /dev/sdb1 /media/pen/
root@leon:/home/jjorge# ls /media/pen/ -la
total 44
d-wxr-x--- 10 enforcer wim  4096 Dec 31  1969 .
drwxr-xr-x  8 root     root 4096 Oct 17 16:14 ..

पुनः प्रयास करें

enforcer@leon:~$ touch /media/pen/hola
enforcer@leon:~$ ls /media/pen/
ls: cannot open directory /media/pen/: Permission denied
enforcer@leon:~$ cat /media/pen/hola
cat: /media/pen/hola: Permission denied

ftp@leon:/home/jjorge$ ls /media/pen/ -la
total 44
d-wxr-x--- 10 enforcer ftp  4096 Oct 20 10:20 .
drwxr-xr-x  8 root     root 4096 Oct 17 16:14 ..
--wxr-x---  1 enforcer wim     0 Oct 20 10:20 hola

इस कॉन्फ़िगरेशन के साथ अब आप लिखने में सक्षम हैं

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