ตามที่ระบุไว้ในบทความโดย Slicehost :
การตั้งค่าผู้ใช้
เริ่มต้นด้วยการเพิ่มผู้ใช้หลักในกลุ่มผู้ใช้ Apache:
sudo usermod -a -G www-data demo
ซึ่งจะเพิ่ม "การสาธิต" ของผู้ใช้ลงในกลุ่ม "www-data" ตรวจสอบให้แน่ใจว่าคุณใช้ทั้งอ็อพชัน -a และ -G ด้วยคำสั่ง usermod ที่แสดงด้านบน
คุณจะต้องออกจากระบบและกลับเข้าสู่ระบบอีกครั้งเพื่อเปิดใช้งานการเปลี่ยนแปลงกลุ่ม
ตรวจสอบกลุ่มทันที:
groups
...
# demo www-data
ตอนนี้ฉันเป็นสมาชิกของสองกลุ่ม: ของฉันเอง (สาธิต) และกลุ่ม Apache (www-data)
การตั้งค่าโฟลเดอร์
ตอนนี้เราต้องตรวจสอบให้แน่ใจว่าโฟลเดอร์ public_html เป็นของผู้ใช้หลัก (สาธิต) และเป็นส่วนหนึ่งของกลุ่ม Apache (www-data)
มาตั้งค่ากัน:
sudo chgrp -R www-data /home/demo/public_html
ในขณะที่เรากำลังพูดถึงสิทธิ์ฉันจะเพิ่มบันทึกย่อเกี่ยวกับคำสั่ง sudo: เป็นนิสัยที่ดีในการใช้เส้นทางสัมบูรณ์ (/ home / demo / public_html) ดังที่แสดงไว้ด้านบนแทนที่จะเป็นเส้นทางสัมพัทธ์ (~ / public_html) ช่วยให้มั่นใจได้ว่า sudo ถูกใช้ในตำแหน่งที่ถูกต้อง
หากคุณมีโฟลเดอร์ public_html ที่มี symlink อยู่แล้วให้ระวังคำสั่งนั้นด้วยเพราะมันจะเป็นไปตาม symlinks ในกรณีของโฟลเดอร์ public_html ที่ใช้งานได้ให้เปลี่ยนแต่ละโฟลเดอร์ด้วยตนเอง
Setgid
ดีมาก แต่จำคำสั่งที่เราให้ไว้มีผลกับโฟลเดอร์ที่มีอยู่เท่านั้น มีอะไรใหม่บ้าง?
เราสามารถตั้งค่าความเป็นเจ้าของเพื่อให้สิ่งใหม่ ๆ อยู่ในกลุ่ม "www-data" ด้วย
คำสั่งแรกจะเปลี่ยนสิทธิ์สำหรับไดเร็กทอรี public_html เพื่อรวมบิต "setgid":
sudo chmod 2750 /home/demo/public_html
เพื่อให้แน่ใจว่าไฟล์ใหม่ ๆ จะได้รับกลุ่ม 'www-data' หากคุณมีไดเรกทอรีย่อยคุณจะต้องเรียกใช้คำสั่งนั้นสำหรับแต่ละไดเรกทอรีย่อย (การอนุญาตประเภทนี้ใช้ไม่ได้กับ '-R') โชคดีที่ไดเรกทอรีย่อยใหม่จะถูกสร้างขึ้นโดยตั้งค่าบิต 'setgid' โดยอัตโนมัติ
หากเราต้องการอนุญาตให้เขียนเข้าถึง Apache เช่นไปยังไดเร็กทอรีอัพโหลดจากนั้นตั้งค่าการอนุญาตสำหรับไดเร็กทอรีนั้นดังนี้:
sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads
ต้องตั้งค่าสิทธิ์เพียงครั้งเดียวเนื่องจากไฟล์ใหม่จะได้รับการกำหนดความเป็นเจ้าของที่ถูกต้องโดยอัตโนมัติ