सबसे पहले, अपने आप को समूह में जोड़ें www-data
usermod -a -G www-data (your username)
फिर:
chgrp www-data /home/myuser/folderA
chmod g+rwxs /home/myuser/folderA
चाल चलनी चाहिए जब तक कि आपके पर अनुमतियाँ /home/myuser
अन्य उपयोगकर्ताओं तक पहुँचने की अनुमति न दें।
पहला आदेश फ़ोल्डर के समूह के स्वामित्व को वेबसर्वर में बदल देता है। दूसरा कमांड www-data
समूह के सदस्यों को रीड, राइट, एंटर-डायरेक्टरी राइट्स देता है, और ग्रुप s
फ्लैग यह सुनिश्चित करेगा कि उस डायरेक्टरी के अंदर बनने वाली कोई भी फाइल www-data
ग्रुप के रूप में ली जाए - इसलिए यदि आप एक फाइल बनाते हैं myuser
तो www-data
यूजर के पास एक्सेस होगी।
नायब। यह umask
आपके उपयोगकर्ता खाते और वेबसर्वर दोनों की सेटिंग्स पर भी निर्भर करता है : आपको यह सुनिश्चित करने की ज़रूरत है कि फ़ोल्डर में बनाई गई फ़ाइलों में समूह rw
एक्सेस (और निर्देशिका समूह की आवश्यकता समूह में rwx
) है
यदि आपके वेबसर्वर के पास आपके /home/myuser
dir (काफी समझदार) अधिकार नहीं हैं, तो यह तब तक नहीं होगा जब तक आप कुछ और नहीं करते। दो सॉलन:
sudo mount --bind /home/myuser/folderA /var/www/mysite/folderA
(यह एक बदसूरत हैक है और रिबूट के बाद दोहराया जाना होगा। लेकिन एक शक्तिशाली ट्रिक का उपयोग एसएसएच जेलों के अंदर फ़ोल्डर्स को सुलभ बनाने के लिए भी किया जा सकता है।)
बस साझा फ़ोल्डर को कहीं और स्थानांतरित करें, जैसे /home/shared-stuff/folderA
।
दूसरा विकल्प सबसे अच्छा है। मान लीजिए कि फ़ोल्डर में सामान वास्तव में सार्वजनिक है और आपको परवाह नहीं है कि इसे कौन देखता है, आप इसे सेट कर सकते हैं
sudo mkdir -m777 /home/shared-stuff
तब आप अंदर कह सकते हैं कि, फ़ोल्डर को ऊपर की अनुमति के साथ, और फ़ोल्डरबी कि www-data को अन्य अनुमतियों के साथ उपयोग नहीं करना चाहिए, जैसे।
$ cd /home/shared-stuff ; ls -l
drwxrwsr-x 2 myuser www-data 4096 Jan 17 21:46 folderA
drwxrwx--- 2 myuser myuser 4096 Jan 17 21:46 folderB
s
मेंg+rwxs
?