निर्देशिका में सभी फ़ोल्डर / फ़ाइलों के लिए डिफ़ॉल्ट फ़ाइल अनुमतियां कैसे सेट करें?


254

मैं एक फ़ोल्डर सेट करना चाहता हूं जैसे कि इसके भीतर बनाई गई कुछ भी (निर्देशिका, फाइलें) डिफ़ॉल्ट अनुमतियों और समूह को विरासत में मिला।

समूह को "मीडिया" कहते हैं। और यह भी, डायरेक्टरी के भीतर बनाए गए फोल्डर / फाइलों में स्वतः जी + आरडब्ल्यू होना चाहिए।


1
क्या उपयोगकर्ता द्वारा नई फ़ाइल / फ़ोल्डर, और उसके umask बनाने को नियंत्रित नहीं किया गया है?
वादीह एम।

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

1
क्या ओएस? टैग की जरूरत है setfaclऔर AIX पर डिफ़ॉल्ट ACL मौजूद नहीं है।
अमित नायडू

जवाबों:


269

मैंने इसे पाया: डिफ़ॉल्ट अनुमतियों को लागू करना

लेख से:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

आगे हम सत्यापित कर सकते हैं:

getfacl /<directory>

आउटपुट:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

5
चिपचिपे बिट के लिए याय!
गाबे

22
चिपचिपा सा के साथ gid को भ्रमित नहीं करता है।
अमित नायडू

10
g + s यह सुनिश्चित करेगा कि निर्देशिका में नई सामग्री समूह स्वामित्व प्राप्त करेगी। सेटफैक्ल केवल चामोद को बदलता है, आपके मामले में ओ = आरएक्स की अनुमति निर्धारित करता है
स्टीन स्कुट

10
ध्यान दें कि ACL को सक्षम होना चाहिए (माउंट फ़ाइल सिस्टम के लिए माउंट विकल्पों में से एक के रूप में शामिल) फ़ाइल अनुमतियों के लिए विरासत में मिला है।
sg23

11
आप इसके बजाय 'X' का उपयोग करने पर विचार कर सकते हैं, इसलिए यह केवल फाइलों पर नहीं निर्देशिकाओं पर अनुमति निष्पादित करेगाsetfacl -d -m g::rwX /<directory>
एड्रियन गनवन

27

यह क्रिस के उत्तर के लिए एक अतिरिक्त है, यह मेरे आर्क लिनक्स रिग पर मेरे अनुभव पर आधारित है।

डिफ़ॉल्ट स्विच (-d) और संशोधित स्विच (-m) का उपयोग करके केवल डिफ़ॉल्ट अनुमतियों को संशोधित किया जाएगा लेकिन मौजूदा वाले को छोड़ दें:

setfacl -d -m g::rwx /<directory>

यदि आप मौजूदा सहित फ़ोल्डर की संपूर्ण अनुमति संरचना को बदलना चाहते हैं (आपको एक अतिरिक्त पंक्ति करनी होगी और इसे पुनरावर्ती बनाना होगा: -R:

setfacl -R -m g::rwx /<directory>

जैसे।

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( सभी विशेषाधिकारों की पंक्ति के सिंटैक्स के लिए टिप्पणियों में अंकन के लिए क्रेडिट )


2
समूह विशेषाधिकारों को रद्द करने के लिए (उदाहरण के लिए): sudo setfacl -d -mg :: --- / path
markdwhite

1
क्या setfacl -R -m g::rwx /<directory>आपके जवाब में केवल एक टाइपो दो बार निर्दिष्ट कर रहा है ?
शेन रोवेट

0

अपने आप को / लॉग-इन उपयोगकर्ता को www-data group में जोड़ें, इसलिए हम www-data सर्वर द्वारा बनाई गई फाइलों के साथ काम कर सकते हैं

sudo usermod -a -G www-data $USER

फिर से शुरू / पुन: जुड़ने की जरूरत है ताकि नव जोड़ा समूह प्रभावी हो

cd /var/www

HTML फ़ोल्डर के समूह सदस्य के रूप में www-डेटा जोड़ें, और आपका उपयोगकर्ता स्वामी के रूप में है, इसलिए हम इसके साथ ही एक समूह सदस्य भी हैं

sudo chown -R $USER:www-data html

USER के स्थान पर अपना उपयोगकर्ता नाम रखें

सेट पढ़ें, लिखें, अनुमति निष्पादित करें, (कुरूप) u = उपयोगकर्ता, जी = समूह, ओ = अन्य

sudo chmod 750 html

HTML की GID सेट करें, अब HTML में नई बनाई गई फ़ाइलें स्वामित्व अनुमतियाँ प्राप्त करेंगी:

sudo chmod g+s html

यह HTML निर्देशिका और उप निर्देशिकाओं के भीतर नई बनाई गई फ़ाइलों / dirs के लिए डिफ़ॉल्ट नियम बनाता है।

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

यदि SELinux बना है, तो www-data संदर्भ आवश्यकता को अनदेखा करें, ताकि यह लिखने की अनुमति दे सके

sudo setsebool -P httpd_unified 1

सूची निर्देशिका लागू नई अनुमतियों को देखने के लिए

ls -ld html

यह लौटाता है

drwxrwsr-x+   3 html www-data

अनुगामी + यह दर्शाता है कि ACL, एक्सेस कंट्रोल लिस्ट, डायरेक्टरी पर सेट है।

संदर्भ : फोरम का लिंक


-2

निम्न आदेश का उपयोग करके आप किसी फ़ाइल के लिए डिफ़ॉल्ट अनुमति सेट कर सकते हैं:

chacl -R filename

3
यह अन्य उत्तरों से कैसे भिन्न है? और कुछ उदाहरण दीजिए
रोमियो निनोव

3
क्या आप सुनिश्चित हैं कि यह क्या करता है? linux.die.net/man/1/chacl इंगित करता है कि यह एक ACL को हटा देगा ।
जेफ स्कालर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.