linux / setfacl - निर्दिष्ट निर्देशिका / समूह के साथ 775 में सभी वर्तमान / भविष्य की फाइलों / निर्देशिकाओं को मूल निर्देशिका में सेट करें


42

मेरे पास "सदस्य" नामक एक निर्देशिका है और इसके तहत फ़ोल्डर / फाइलें हैं। मैं पुन: कैसे कर सकता हूँ सभी वर्तमान फ़ोल्डर / फ़ाइलों को सेट करें और डिफ़ॉल्ट रूप से वहाँ बनाए गए किसी भी भविष्य के पास 775 अनुमतियाँ हैं और क्रमशः मालिक / समूह कोई नहीं / व्यवस्थापक हैं? मैंने ACL को सक्षम किया, माउंट किया, लेकिन इसे ठीक से करने के लिए setfacl कमांड प्राप्त नहीं कर सका। किसी भी विचार यह कैसे पूरा करने के लिए?

जवाबों:


62

मुझे वास्तव में ऐसा कुछ मिला जो अब तक मैंने जो कुछ भी मांगा था, उसे यहाँ साझा कर रहा हूं, जो भी इस मुद्दे को चलाता है, इस समाधान को आजमा सकता है:

sudo setfacl -Rdm g:groupnamehere:rwx /base/path/members/
sudo setfacl -Rm g:groupnamehere:rwx /base/path/members/

आर पुनरावर्ती है, जिसका अर्थ है कि उस निर्देशिका के तहत सब कुछ उस पर लागू नियम होगा।
डी डिफ़ॉल्ट है, जिसका अर्थ है कि उस निर्देशिका के तहत बनाई गई सभी भविष्य की वस्तुओं के लिए, ये नियम डिफ़ॉल्ट रूप से लागू होते हैं। मी को नियमों को जोड़ने / संशोधित करने की आवश्यकता है।

पहला कमांड, नए आइटम (इसलिए डी) के लिए है, दूसरा कमांड, फ़ोल्डर के तहत पुराने / मौजूदा आइटम के लिए है। आशा है कि यह किसी को मदद करता है क्योंकि यह सामान थोड़ा जटिल है और बहुत सहज नहीं है।


2
यह ठीक वैसा ही है जैसा मुझे एक दादा-दादी निर्देशिका के मालिक को प्राप्त करने के लिए आवश्यक था ताकि नई पोती निर्देशिकाओं की सामग्री को ठीक से संशोधित किया जा सके।
जोस्ट

यदि आप अपने Rpi के एकमात्र उपयोगकर्ता हैं, तो आप g: groupname को pi: pi या just pi से बदल सकते हैं
SDSolar

आप उपयोगकर्ता, समूहों और अन्य के लिए एक पंक्ति में निर्दिष्ट कर सकते हैं, जैसे -Rdm g:groupnamehere:rwx, -Rdm u:groupnamehere:rwx
user2340939

18

आपके स्वीकृत उत्तर के साथ जाने के लिए ...

आप उन आदेशों को एक साथ जोड़ सकते हैं:

sudo setfacl -Rm d:g:groupnamehere:rwx,g:groupnamehere:rwx /base/path/members/

यह अच्छा है। आप के d:बजाय पहले आइटम पर कैसे सेट आते हैं -Rmd? मैं बता सकता हूं कि दूसरे पैरामीटर में कोई भी नहीं होना चाहिए default- यह सिर्फ अजीब है कि लिनक्स मुझे कैसे स्वीकार करता है।
जयराम

1
@JREAM: लिनक्स (वास्तव में getopt_long) करने के लिए पूरे तर्क भेजता विकल्प-m जो है हाथ से पार्स द्वारा setfacl, अल्पविराम के द्वारा अलग से पारित कर दिया तर्क। उन्हें एक लिंक की गई सूची में जोड़ा जाता है जो वास्तव में एसीएल बदलते समय अंत में लूप किया जाता है।
बेनोइट डफेज

2

linux पर setfacl में डिफ़ॉल्ट अनुमतियों में हेरफेर करने के लिए विकल्प -dऔर -kविकल्प हैं जो संभवतः आप देख रहे हैं (अधिक जानकारी के लिए आदमी देखें)।


1

उचित रूप से अधिकृत उपयोगकर्ता, निर्देशिकाओं और फ़ाइलों की अनुमतियों की मांग पर सरल यूनिक्स अनुमतियों को पुन: सेट करना आसान है। यह स्वतः ही थोपना संभव नहीं है।

आप उपयोगकर्ताओं को 0002 के सेट का उपयोग करने के लिए कह सकते हैं, और यह 0775 (आवेदन के आधार पर) पर नई फाइलें बनाने में मदद करता है। लेकिन यह लागू करने योग्य नहीं है।

मेरी समझ यह है कि ACL को UNIX / Linux सिस्टम विरासत में नहीं मिला है। वे मांग पर सेट हैं।

फ़ाइल / निर्देशिका स्वामित्व के लिए, आप यहाँ बहुत अधिक भाग्य से बाहर हैं।

फ़ाइल / डायरेक्टरी ग्रुप ओनरशिप के लिए, डायरेक्टरी सेट-गिड बिट (जैसे कि डाइरेक्टरीज पर g + s) सेट करके, यह ग्रुप ओनरशिप को इनहेरिट करने का कारण बनता है।

मैंने ऐसी स्थितियों में जो किया है वह एक आवधिक रूट क्रोन स्क्रिप्ट को निष्पादित करना है जो ऐसी निर्देशिकाओं में मानक के अनुरूप गैर-अनुमत अनुमतियों / मालिकों को रीसेट करता है।

इन फ़ाइलों पर काम करते समय एक ही उपयोगकर्ता-आईडी का उपयोग करने के लिए एक और (NOT RECOMMENDED) प्रक्रिया होती है। यह उपयोगकर्ता द्वारा अपने स्वयं के UID के तहत सिस्टम में लॉगिंग द्वारा पूरा किया जा सकता है, और फिर आईडी के रूप में चलाने के लिए sudo या su का उपयोग कर सकता है। यह अभी भी विशेष रूप से ACL और अनुमति बिट्स से संबंधित 100% नहीं है।

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