ฉันชอบติดพาร์ติชันด้วย -o acl สิ่งนี้อนุญาตให้คุณใช้คำสั่ง setfacl เพื่อให้สิทธิ์การใช้งานแบบละเอียดบนไฟล์และโฟลเดอร์แทนการระบุสิทธิ์ผู้ใช้กลุ่มอื่น ๆ เท่านั้น
ดังนั้นให้ใส่ acl ลงในพาร์ติชั่นของคุณใน / etc / fstab, หรือติดตั้งใหม่ด้วย mount -o remount, acl / mnt / xy, จากนั้นให้ความเป็นเจ้าของเว็บไดเรกทอรีของคุณกับ none: none Chmod ถึง 770 และใช้ setfacl เพื่อให้สิทธิ์การเขียนในโฟลเดอร์ที่ต้องการเท่านั้นเช่น ให้ข้อมูล www (หรือผู้ใช้เว็บเซิร์ฟเวอร์ของคุณทำงาน) เขียนสิทธิ์สำหรับโฟลเดอร์อัพโหลดและให้สิทธิ์เขียนให้กับผู้ใช้ของคุณสำหรับไดเรกทอรีทั้งหมด
mkdir dir
chown nobody:nobody dir
setfacl -m u:www-data:r-x,d:u:www-data:r-x dir
setfacl -m u:www-data:rwx,d:u:www-data:rwx dir/upload
setfacl -m u:youruser:rwx,d:u:youruser:rwx dir
ตอนนี้ไม่มีใครสามารถอ่านไฟล์ของคุณนอกเหนือจากเว็บเซิร์ฟเวอร์และผู้ใช้ของคุณเอง คุณสามารถเขียนไปยังทุกไฟล์ในโฟลเดอร์และเว็บเซิร์ฟเวอร์สามารถเขียนลงในโฟลเดอร์อัพโหลดได้เท่านั้น