सबसे पहले, अपने आप को समूह में जोड़ें 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/myuserdir (काफी समझदार) अधिकार नहीं हैं, तो यह तब तक नहीं होगा जब तक आप कुछ और नहीं करते। दो सॉलन:
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?