/ Var / www निर्देशिका में testuser खाते से बनाई गई फ़ाइलों के लिए , मुझे अनुमतियों के रूप में g + rwx और समूह के रूप में www-data की आवश्यकता है ।
इसे कैसे प्राप्त किया जा सकता है?
मैं SSH के माध्यम से फाइलें बना रहा हूं।
/ Var / www निर्देशिका में testuser खाते से बनाई गई फ़ाइलों के लिए , मुझे अनुमतियों के रूप में g + rwx और समूह के रूप में www-data की आवश्यकता है ।
इसे कैसे प्राप्त किया जा सकता है?
मैं SSH के माध्यम से फाइलें बना रहा हूं।
जवाबों:
समूह सेट करने के लिए /var/www
, सेटगिड बिट दें:
chgrp www-data /var/www
chmod g+s /var/www
उपनिर्देशिका को समायोजित करने के लिए: find /var/www -type d -exec chmod g+s {} +
यह सभी नई बनाई गई फ़ाइलों को उपयोगकर्ता के बजाय मूल निर्देशिका के समूह को इनहेरिट करेगा।
डिफ़ॉल्ट समूह अनुमतियाँ सेट करने के लिए, आपको ACL का उपयोग करना होगा । "डिफ़ॉल्ट" ACL सेट करें:
setfacl -m "default:group::rwx" /var/www
उपनिर्देशिका को समायोजित करने के लिए: find /var/www -type d -exec setfacl -m d:g::rwx {} +
नोट: फ़ाइल सिस्टम में ACL समर्थन सक्षम होना चाहिए। कभी-कभी यह डिफ़ॉल्ट रूप से चालू होता है; पर ext3 या ext4 आप हो "कार्रवाई समर्थित नहीं" हो सकता है, ऐसी स्थिति में इसे मैन्युअल रूप से सक्षम होने चाहिए:
वर्तमान में माउंट किए गए फ़ाइल सिस्टम के लिए: mount -o remount,acl /
स्थायी रूप से - एक नीचे दिए गए तरीकों:
fstab स्तर पर: विकल्प फ़ील्ड में /etc/fstab
होने के लिए संपादित करेंacl
फाइल सिस्टम स्तर पर: tune2fs -o acl /dev/diskname
chmod
सभी फाइलें भी मिल जाएंगी।
install
, किसी भी तरह से डिफ़ॉल्ट ACL को बाईपास करने का प्रबंधन करते हैं।
/var/www/html/projects
फ़ोल्डर है और जब www-data एक फाइल बनाता है तो इसकी rw-rw-r
अनुमति होती है लेकिन जब मैं कंसोल में कुछ करता हूं तो यह एक फाइल बनाता है rw-r--r
। मैं हमेशा rw-rw-r
अनुमति के लिए नई बनाई गई फ़ाइलों को कैसे मजबूर कर सकता हूं ?
umask
। मुख्य निर्देशिका के रूप में प्रति-निर्देशिका डिफ़ॉल्ट अनुमतियाँ परिवर्तनशील हैं setfacl
।
यह सेटगिड पर 'ग्रैविटी' के जवाब से चिपके हुए कुछ लोगों को मिल सकता है, अगर फ़ोल्डर का समूह आपके खुद से अलग है, तो आपको चामॉड को रूट के रूप में चलाने की आवश्यकता हो सकती है, लेकिन आपको ऐसा करने में कोई त्रुटि नहीं मिलेगी, जो आपको संकेत दे।
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set
किसी उपयोगकर्ता द्वारा बनाई जा रही फ़ाइलों का समूह उस उपयोगकर्ता का समूह (/ / आदि / समूह में) है। अनुमतियाँ UMASK पैरामीटर द्वारा नियंत्रित होती हैं यह देखें
stor
/appe
? HTTPPUT
? एक शेल खाते के माध्यम से? ये विवरण महत्वपूर्ण हैं, क्योंकि वे संभावित उत्तरों को बहुत प्रभावित करते हैं, और आपके प्रश्न में होना चाहिए।