समूह के सदस्यों को निर्देशिका में किसी भी फाइल को लिखने की अनुमति देने के लिए सेटफैक्ल का उपयोग करना


12

मैं setfacl का उपयोग करना चाहता हूं, ताकि समूह 'ऐप' में कोई भी किसी भी फ़ाइल को संपादित कर सकता है, जो पारंपरिक यूनिक्स अनुमतियों के अनुसार / usr / local / users / app में निहित है। मेरे दो उपयोगकर्ता हैं जॉन और बेन। मैंने एक और सवाल से निर्देश का पालन करने की कोशिश की , लेकिन जॉन कुछ फाइलों को लिखने में सक्षम नहीं है। ऐसा लगता है कि यह acl मास्क की वजह से है। फिर भी, मैंने rwx की निर्देशिका पर डिफ़ॉल्ट मास्क सेट किया है, तो क्या इसके भीतर की फ़ाइलों को इनहेरिट नहीं किया जाना चाहिए जब बनाया गया हो?

उदाहरण के लिए, जॉन नीचे दी गई फ़ाइल को नहीं लिख सकता है, लेकिन वह समूह 'ऐप' का एक सदस्य है, जिसने फ़ाइल पर एकल लिखा है, इसलिए मुझे आश्चर्य है कि वह फ़ाइल को संपादित नहीं कर सकता है।

ben@app1:/usr/local/users$ ls -la app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
-rw-r--r--+ 1 ben users 38326 Apr  2 10:21 app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar

ben@app1:/usr/local/users/app$ getfacl app-1.0-SNAPSHOT/lib/
# file: app-1.0-SNAPSHOT/lib/
# owner: ben
# group: users
user::rwx
group::rwx          #effective:r-x
group:app:rwx       #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::rwx
default:group:app:rwx
default:mask::rwx
default:other::r-x

ben@app1:/usr/local/users$ getfacl app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
# file: app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar
# owner: ben
# group: users
user::rw-
group::rwx          #effective:r--
group:app:rwx       #effective:r--
mask::r--
other::r--

जवाबों:


7

आप "प्रभावी" टिप्पणी पर ध्यान देंगे जो गेटफेकल आप पर फेंक रहा है। मुद्दा यह है कि अनुमतियाँ गणना कर रही हैं ताकि "ऐप" को राइट बिट सेट न मिले। ऐसा इसलिए हो रहा है क्योंकि फ़ाइल पर मास्क केवल पढ़ने के लिए सेट है। मास्क का उपयोग अनुमतियों की मात्रा को सीमित करने के लिए किया जाता है जो संभवतः किसी विशेष फ़ाइल या निर्देशिका पर दिए जा सकते हैं।

आप इस व्यवहार को क्यों चाहते हैं, इसका एक उदाहरण यह होगा कि यदि आप जानते हैं कि फ़ाइल को कानूनी रूप से विभिन्न उपयोगकर्ताओं / समूहों तक पहुँच की आवश्यकता हो सकती है, लेकिन किसी कारण से चीजें अनुमतियों के साथ जटिल हो रही थीं और आप कहने का एक तरीका चाहते थे "जो भी हो डिफ़ॉल्ट अनुमतियाँ सेट की जाती हैं, जो भी उनके समूह के सदस्य होते हैं, या जो भी पुनरावर्ती सेटफ़्लैक बाद में निष्पादित हो जाता है, DEFINITELY DON'T GIVE THIS OUT ! " मालिक के पास पोसिक्स दुनिया में एक विशेष दर्जा है, इसके पास अन्य उपयोगकर्ता के अधिकार नहीं हैं, जैसे गैर-रूट होने और किसी फ़ाइल पर अनुमतियों को बदलने की क्षमता और इसके अधिकार मुखौटा द्वारा सीमित नहीं हैं (जो होगा) निरर्थक वैसे भी क्योंकि पहला विशेषाधिकार सिस्टम उन्हें देता है)। यही कारण है कि नकाब प्रतिबंधित होने के बावजूद वे अभी भी rwx प्राप्त करते हैं।

हालांकि आपके विशिष्ट प्रश्न का उत्तर देने के लिए : फाइल पर मास्क में राइट बिट को जोड़ें और johnउपयोगकर्ता के रूप में फिर से प्रयास करें।

यहां उपरोक्त स्पष्टीकरण का एक कमांड लाइन संस्करण है, ध्यान दें कि जब मैं संशोधित करता हूं तो "प्रभावी" अधिकार कैसे बदल जाते हैं।


धन्यवाद। मैं वास्तव में प्रतिक्रिया की सराहना करता हूं। क्या rwx के डिफ़ॉल्ट मास्क के साथ नई फ़ाइलों का निर्माण संभव है? मैंने अपने प्रश्न को कुछ और विवरणों के साथ संपादित किया है।
बेन मैककैन

हाँ मुखौटा उन श्रेणियों (जैसे उपयोगकर्ता और समूह) में से एक है जिस पर आप एक डिफ़ॉल्ट ACL सेट कर सकते हैं। डिफ़ॉल्ट मुखौटा को उपनिर्देशिकाओं के लिए विरासत में मिलना चाहिए और फाइलों पर लागू होना चाहिए। उदाहरण: setfacl -md: m :: rwx / path / to / Dir
ब्राचली

डिफ़ॉल्ट ACL उपनिर्देशिकाओं के लिए विरासत में मिला है, लेकिन फाइलों में नहीं, जिससे ACL पूरी तरह से बेकार हो गया है :-(
बेन मैककॉन

बस यह सुनिश्चित करने के लिए कि हम उसी चीज़ के बारे में बात कर रहे हैं, आप मास्क प्रविष्टि के लिए डिफ़ॉल्ट एसीएल के बारे में बात कर रहे हैं? यही मुझे परीक्षणों में मिलता है।
ब्राचली

मैंने नई फ़ाइलों के लिए / माता-पिता निर्देशिका पर प्रभावी मुखौटा बदलने के बाद / परीक्षण में उपरोक्त परीक्षा भी दोहराई है और उसी परिणाम को प्राप्त किया है (डिफ़ॉल्ट मुखौटा प्रविष्टि फ़ाइल पर लागू होती है, माता-पिता के प्रभावी मास्क पर नहीं)।
ब्राचली

0

यह असंभव है। cp, rsync, आदि डिफ़ॉल्ट ACLs की अनदेखी करने वाली फ़ाइलें बनाते हैं

Cp ACL का सम्मान क्यों नहीं करता है?


गलत उपयोगकर्ता उसी मास्क की चीज में चल रहा था जिसे आप पहले चला रहे थे और किसी अन्य से गलत प्रतिक्रिया मिली। यह "cp" या डिफ़ॉल्ट ACL प्रविष्टियों को अनदेखा करने के लिए किसी भी अन्य उपयोगिता तक नहीं है, जो कि फ़ाइल बनाने के लिए फ़ाइल सिस्टम स्तर पर होता है। उपकरण में सिस्टम को कॉल करने के लिए आवश्यक ACL को जोड़ने / जारी करने का विकल्प होता है, लेकिन ऐसा करने का प्रयास करना होगा।
ब्राचली

उस का नरक यह है कि आप एसीएल प्रविष्टि को अपनी बात करते हुए देख सकते हैं यह सिर्फ प्रभावी अनुमति है जो वे उम्मीद कर रहे हैं कि वे वहां नहीं हैं। यह कहने के लिए एक सही मौका था "अरे यार, अपना मुखौटा जांचें।"
ब्राचली

1
वास्तव में, मुझे लगता है कि यह ऐसा लग रहा है जैसे कि एविलराइरी ने मास्क के बारे में पोस्ट किया था और ओपी ने केवल "यह काम नहीं किया" के साथ वापस जवाब दिया, फिर गेटफैकल आउटपुट पोस्ट किया जो यह दर्शाता है कि "फॉल्स" को फाइल पर आरएक्सएक्स मिला। इस दर पर, उच्चतम मतदान का जवाब मेरे व्यक्तिगत अनुभव के साथ मेल नहीं खाता है और जो मैंने यहां उदाहरणों के उदाहरण के साथ चित्रित किया है।
ब्राचली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.