यदि हम site1 के स्वामित्व की जांच करते हैं, तो हम कुछ ऐसा पाएंगे,
ls -ld /var/www/site1/
drwxr-xr-x 2 root root 4096 Oct 24 21:06 site1/
इसका मतलब है कि निर्देशिका उपयोगकर्ता रूट, समूह रूट के स्वामित्व में है। जबकि उपयोगकर्ता रूट ने निर्देशिका को लिखने की अनुमति (प्लस पढ़ने और अनुमतियों को निष्पादित) की है, समूह रूट ने केवल अनुमतियों को पढ़ा और निष्पादित किया है।
हम समूह के स्वामित्व को दूसरे (नए) समूह में बदलना चाहेंगे और उस विशेष समूह में उपयोगकर्ता 1 को जोड़ेंगे। हम उस विशेष समूह को भी लिखित अनुमति देंगे।
एक नया समूह बनाएं,
sudo addgroup site1
नए बनाए गए समूह में user1 जोड़ें,
sudo adduser user1 site1
जाँचें कि user1 वास्तव में उस समूह में है,
groups user1
आउटपुट कुछ इस तरह की एक सूची होनी चाहिए,
user1 : <other-groups> site1
अब हम आपकी इच्छित निर्देशिका के समूह के स्वामित्व को बदल सकते हैं।
sudo chown -vR :site1 /var/www/site1/
changed ownership of `/var/www/site1/' from root:root to :site1
इस नए समूह के मालिक को अनुमति दें,
sudo chmod -vR g+w /var/www/site1/
mode of `/var/www/site1/' changed from 0755 (rwxr-xr-x) to 0775 (rwxrwxr-x)
जांचें कि सभी परिवर्तन वास्तव में हैं,
ls -ld /var/www/site1/
drwxrwxr-x 2 root site1 4096 Oct 24 21:06 /var/www/site1/
इसलिए, निर्देशिका अब उपयोगकर्ता रूट, समूह साइट 1 के स्वामित्व में है। दोनों उपयोगकर्ता रूट और समूह साइट 1 ने लेखन अनुमति (प्लस पढ़ें और अनुमति निष्पादित करें) निर्देशिका के लिए है। Group1 से संबंधित कोई भी उपयोगकर्ता उस समूह को दिए गए सभी विशेषाधिकारों का आनंद उठाएगा।
अब user1 के रूप में लॉगिन करें, साइट 1 निर्देशिका में जाएं और उस निर्देशिका में एक फ़ाइल बनाने का प्रयास करें,
echo "My User1 Site" > index.html
bash: index.html: Permission denied
यह प्रायः विफल रहा क्योंकि प्रायः user1 का प्राथमिक समूह साइट 1 नहीं है। इसलिए, उस समूह में परिवर्तन करें।
newgrp - site1
फ़ाइल को फिर से बनाने की कोशिश करें (सावधान रहें कि आपको समूह बदलने के बाद उपयोगकर्ता 1 के होम डायरेक्टरी में ले जाया गया है), यह अब काम करना चाहिए। चूंकि बनाई गई फाइलों में दुनिया की अनुमति होगी, अपाचे (या आपके वेब सर्वर) को उन तक पहुंचने में किसी भी समस्या का सामना नहीं करना चाहिए।
संपादित करें
इसके अलावा, जैसा कि टिप्पणी में dan08 द्वारा बताया गया है , आपको साइट -1 समूह में www-data जोड़ने की आवश्यकता है।
sudo adduser www-data site1
कई (सभी नहीं) वितरण पर, www-data वह उपयोगकर्ता है जिसके तहत Apache वेब सर्वर चलता है। इसका अर्थ यह भी है कि Apache द्वारा किया गया सब कुछ (विशेष रूप से PHP स्क्रिप्ट सहित) डिफ़ॉल्ट रूप से उपयोगकर्ता www-data (और समूह www-data) की अनुमतियों के साथ किया जाएगा। वर्डप्रेस www-data का उपयोग फाइल लिखने के लिए करता है।
यदि आप देखना चाहते हैं कि वेब सर्वर अपाचे कैसे चल रहा है, तो कमांड जारी करें,
ps aux | grep apache2 | less