उपयोगकर्ता सेटअप
तो आइए मुख्य उपयोगकर्ता को Apache उपयोगकर्ता समूह में जोड़कर शुरू करते हैं:
sudo usermod -a -G www-data demo
यह उपयोगकर्ता 'डेमो' को 'www-data' समूह में जोड़ता है। सुनिश्चित करें कि आप ऊपर दिखाए गए usermod कमांड के साथ -a और -G दोनों विकल्पों का उपयोग करते हैं।
समूह परिवर्तन को सक्षम करने के लिए आपको फिर से लॉग आउट और लॉग इन करना होगा।
अब समूहों की जाँच करें:
groups
...
# demo www-data
इसलिए अब मैं दो समूहों का सदस्य हूं: मेरा अपना (डेमो) और अपाचे समूह (www-data)।
फ़ोल्डर सेटअप
अब हमें यह सुनिश्चित करने की आवश्यकता है कि public_html फ़ोल्डर मुख्य उपयोगकर्ता (डेमो) के स्वामित्व में है और यह Apache group (www-data) का हिस्सा है।
चलो सेट अप करें:
sudo chgrp -R www-data /home/demo/public_html
जैसा कि हम अनुमतियों के बारे में बात कर रहे हैं, मैं सूडो कमांड के बारे में एक त्वरित नोट जोड़ूंगा: यह पूर्ण पथ (/ होम / डेमो / public_html) का उपयोग करने के लिए एक अच्छी आदत है जैसा कि ऊपर दिए गए सापेक्ष पथ (~ / public_html) के बजाय ऊपर दिखाया गया है। यह सुनिश्चित करता है कि सुडो का उपयोग सही स्थान पर किया जा रहा है।
यदि आपके पास एक सार्वजनिक_एचटीएमएल फ़ोल्डर है जिसके स्थान पर सिमलिंक हैं तो उस कमांड से सावधान रहें क्योंकि यह सिम्बलिंक्स का पालन करेगा। काम कर रहे public_html फ़ोल्डर के उन मामलों में, प्रत्येक फ़ोल्डर को हाथ से बदलें।
Setgid
अब तक अच्छा है, लेकिन याद रखें कि हमने अभी जो कमांड दिया है वह केवल मौजूदा फ़ोल्डरों को प्रभावित करता है। क्या कुछ नया है?
हम स्वामित्व सेट कर सकते हैं इसलिए कुछ भी नया 'www-data' समूह में है।
पहला आदेश public_html निर्देशिका के लिए "सेटगिड" बिट को शामिल करने के लिए अनुमतियों को बदल देगा:
sudo chmod 2750 /home/demo/public_html
यह सुनिश्चित करेगा कि किसी भी नई फाइल को समूह 'www-data' दिया जाए। यदि आपके पास उपनिर्देशिकाएँ हैं, तो आप प्रत्येक उपनिर्देशिका के लिए उस कमांड को चलाना चाहेंगे (इस प्रकार की अनुमति '-R' के साथ काम नहीं करती है)। सौभाग्य से नए उपनिर्देशिकाएँ स्वचालित रूप से 'सेटगिड' बिट सेट के साथ बनाई जाएंगी।
यदि हमें उदाहरण के लिए अपलोड निर्देशिका में अपाचे तक लिखने की अनुमति देने की आवश्यकता है, तो उस निर्देशिका के लिए अनुमतियाँ सेट करें जैसे:
sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads
अनुमतियों को केवल एक बार सेट करने की आवश्यकता होती है क्योंकि नई फाइलें स्वचालित रूप से सही स्वामित्व सौंपी जाएंगी।