จริง ๆ แล้วมันขึ้นอยู่กับปลั๊กอินที่คุณวางแผนจะใช้เนื่องจากปลั๊กอินบางตัวเปลี่ยนเอกสารรูทของ wordpress แต่โดยทั่วไปฉันแนะนำสิ่งนี้สำหรับไดเรกทอรี wordpress
สิ่งนี้จะกำหนด "รูท" (หรือสิ่งที่ผู้ใช้ที่คุณใช้) เป็นผู้ใช้ในทุกไฟล์ / โฟลเดอร์ R หมายถึงการเรียกซ้ำดังนั้นมันจึงไม่หยุดที่โฟลเดอร์ "html" หากคุณไม่ได้ใช้ R ก็จะใช้ได้กับไดเรกทอรี "html" เท่านั้น
sudo chown -R root:www-data /var/www/html
สิ่งนี้จะตั้งค่าเจ้าของ / กลุ่มของ "wp-content" เป็น "www-data" ดังนั้นจึงอนุญาตให้เว็บเซิร์ฟเวอร์ติดตั้งปลั๊กอินผ่านแผงการดูแลระบบ
chown -R www-data:www-data /var/www/html/wp-content
สิ่งนี้จะตั้งค่าการอนุญาตของทุก ๆ ไฟล์ในโฟลเดอร์ "html" (รวมถึงไฟล์ในไดเรกทอรีย่อย) เป็น 644 ดังนั้นบุคคลภายนอกไม่สามารถเรียกใช้ไฟล์ใด ๆ แก้ไขไฟล์ใด ๆ กลุ่มไม่สามารถเรียกใช้ไฟล์ใด ๆ แก้ไขไฟล์ใด ๆ และเท่านั้น ผู้ใช้จะได้รับอนุญาตให้แก้ไข / อ่านไฟล์ได้ แต่แม้ผู้ใช้จะไม่สามารถเรียกใช้ไฟล์ใด ๆ ได้ สิ่งนี้สำคัญเนื่องจากจะป้องกันการดำเนินการใด ๆ ในโฟลเดอร์ "html" เช่นกันเนื่องจากเจ้าของโฟลเดอร์ html และโฟลเดอร์อื่น ๆ ทั้งหมดยกเว้นโฟลเดอร์ wp-content คือ "root" (หรือผู้ใช้ของคุณ) www-data สามารถ ' ไม่แก้ไขไฟล์ใด ๆ นอกโฟลเดอร์ wp-content ดังนั้นแม้ว่าจะมีช่องโหว่ในเว็บเซิร์ฟเวอร์และหากมีคนเข้าถึงเว็บไซต์โดยไม่ได้รับอนุญาตพวกเขาจะไม่สามารถลบเว็บไซต์หลักยกเว้นปลั๊กอินได้
sudo find /var/www/html -type f -exec chmod 644 {} +
สิ่งนี้จะ จำกัด การอนุญาตการเข้าถึง "wp-config.php" ให้กับผู้ใช้ / กลุ่มด้วย rw-r ----- การอนุญาตเหล่านี้
chmod 640 /var/www/html/wp-config.php
และหากปลั๊กอินหรืออัพเดตบ่นไม่สามารถอัปเดตได้ให้เข้าถึง SSH และใช้คำสั่งนี้และให้สิทธิ์ชั่วคราวกับ "www-data" (เว็บเซิร์ฟเวอร์) เพื่ออัปเดต / ติดตั้งผ่านแผงการดูแลระบบจากนั้นเปลี่ยนกลับ กลับไปที่ "รูท" หรือผู้ใช้ของคุณเมื่อเสร็จสิ้น
chown -R www-data /var/www/html
และใน Nginx (ขั้นตอนเดียวกันสำหรับ apache) เพื่อป้องกันโฟลเดอร์ wp-admin จากการเข้าถึงที่ไม่ได้รับอนุญาตและการตรวจสอบ apache2-utils เป็นสิ่งจำเป็นสำหรับการเข้ารหัสรหัสผ่านแม้ว่าคุณจะติดตั้ง nginx อยู่ก็ตามให้ละเว้น c หากคุณวางแผนที่จะเพิ่มผู้ใช้มากขึ้นในไฟล์เดียวกัน
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd userName
ตอนนี้ไปที่ตำแหน่งนี้
/etc/nginx/sites-available/
ใช้รหัสนี้เพื่อป้องกันโฟลเดอร์ "wp-admin" ด้วยรหัสผ่านตอนนี้มันจะถามรหัสผ่าน / ชื่อผู้ใช้ถ้าคุณพยายามเข้าถึง "wp-admin" แจ้งให้ทราบล่วงหน้าที่นี่คุณใช้ไฟล์ ".htpasswd" ซึ่งมีรหัสผ่านที่เข้ารหัสไว้
location ^~ /wp-admin {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
index index.php index.html index.htm;
}
ตอนนี้รีสตาร์ท nginx
sudo /etc/init.d/nginx restart