คุณจะต้องตรวจสอบทั้งความเป็นเจ้าของสิทธิ์และบริบท selinux
ความเป็นเจ้าของ - ดูเหมือนคุณมีสิทธิ์นี้ เจ้าของ: กลุ่มบน CentOS7 ควรเป็น apache: apache สำหรับผู้ใช้ของคุณคุณจะต้องเพิ่ม apache เป็นกลุ่มเสริม คุณสามารถตรวจสอบเรื่องนี้ด้วยid myuser
ถ้า Apache usermod -a -G apache myuser
ไม่ปรากฏขึ้นในรายการของกลุ่มแล้วใช้
สิทธิ์ - พวกเขากำลังจดทะเบียนเป็น rwxrwxrwx ชุดกลางของ rwx เป็นส่วนสำคัญในการควบคุมการเข้าถึงผ่านกลุ่ม (ดังนั้นสิ่งที่สำคัญสำหรับ myuser) คุณอาจต้องการสิทธิ์อ่าน / เขียนเท่านั้นดังนั้นchmod -R 664 directoryname
อาจเป็นไปได้ว่าพอเพียง (อ่าน / เขียนสำหรับผู้ใช้และกลุ่ม apache อ่านอย่างเดียวสำหรับคนอื่น ๆ ) ls -l
คุณสามารถตรวจสอบสิทธิ์ด้วย
หมายเหตุ: WordPress มักจะมีไฟล์ '.htaccess' ที่ซ่อนอยู่คุณจะต้องใช้ chmod ด้วยตนเองและไฟล์อื่น ๆ ที่ซ่อนอยู่เนื่องจาก chmod / chown ที่เรียกซ้ำจะข้ามไป
บริบทของ SELinux - สิ่งเหล่านี้คุณสามารถตรวจสอบls -Z
ได้ หากต้องการปิดการบังคับใช้ SELinux คุณสามารถเรียกใช้setenforce 0
- นี้เป็นสิ่งที่ดีสำหรับการแก้จุดบกพร่องไม่ว่า SELinux เป็นผู้ร้ายหรือไม่ setenforce 1
แต่คุณควรหันกลับไปเมื่อเสร็จสิ้นการทดสอบโดยใช้ หาก SELinux เป็นปัญหาแสดงว่าสิ่งที่คุณต้องทำคือเปลี่ยนบริบทของไฟล์ด้วยบางสิ่งchcon -R -t httpd_sys_rw_content_t directoryname
หมายเหตุ: chcon ที่เรียกซ้ำจะข้ามไฟล์ที่ซ่อนอยู่ (ไฟล์ใด ๆ ที่ขึ้นต้นด้วย '.')
หมายเหตุด้านข้าง: หากคุณใช้ symlink คุณควรตรวจสอบให้แน่ใจว่าทั้งไดเรกทอรีที่ลิงก์และ symlink จริงนั้นมีความเป็นเจ้าของ / สิทธิ์ที่เหมาะสม หากต้องการกำหนดเป้าหมาย symlink ด้วย chmod / chown ให้ใช้-h
แฟล็กและหากกำหนดเป้าหมายไดเรกทอรีให้แน่ใจว่าไม่มีเครื่องหมายสแลชต่อท้าย (เช่น/var/www/html/linked_dir
และไม่/var/www/html/linked_dir/
- ระวังด้วยการใช้แท็บเสร็จเนื่องจากจะเพิ่มสแลชต่อท้ายโดยอัตโนมัติ)
apache
สามารถเขียนลงไฟล์ แต่ผู้ใช้ในapache
กลุ่มสามารถอ่านได้เท่านั้น