สิทธิ์การเข้าถึงไฟล์ WordPress เป็นหัวข้อที่ถูกอภิปรายกันอย่างกว้างขวาง และคุณจะพบคำแนะนำมากมายทางออนไลน์ (ซึ่งมีบางส่วนที่ไม่ถูกต้อง) WordPress เองก็มีบทความเกี่ยวกับสิทธิ์การเข้าถึงไฟล์และวิธีการตั้งค่าเพื่อรักษาความปลอดภัยเว็บไซต์ แต่คำแนะนำเหล่านั้นยากต่อการปฏิบัติตาม
ในบทความนี้ เราได้รวบรวมคู่มือฉบับสมบูรณ์สำหรับการทำความเข้าใจสิทธิ์การเข้าถึงของ WordPress คุณจะได้รับความช่วยเหลือด้าน:
- สิทธิ์การเข้าถึงไฟล์ WordPress ที่แนะนำเพื่อรักษาความปลอดภัยหรือแข็งแกร่งเว็บไซต์
- วิธีการเปลี่ยนสิทธิ์ไฟล์และไดเรกทอรีของ WordPress อย่างปลอดภัย
- เคล็ดลับการแก้ไขข้อผิดพลาดที่พบบ่อยจากการตั้งค่าสิทธิ์ไฟล์และโฟลเดอร์ WordPress อย่างไม่ถูกต้อง
สิทธิ์การเข้าถึงไฟล์ WordPress คืออะไร
สิทธิ์การเข้าถึงไฟล์คือ การควบคุมการเข้าถึงไฟล์และไดเรกทอรีของ WordPress ซึ่งระบุว่าใครสามารถ อ่าน เขียน และรันไฟล์ ที่ประกอบเป็นเว็บไซต์ WordPress ของคุณได้
หากผู้ใช้ทุกคนสามารถแก้ไขหรือแม้แต่อ่านไฟล์และไดเรกทอรีได้ มันจะกลายเป็นอันตรายต่อความปลอดภัย สิทธิ์การเข้าถึงของ WordPress เป็นมาตรการความปลอดภัยสำหรับระบบที่มีผู้ใช้หลายคน เช่น เซิร์ฟเวอร์
สิทธิ์การเข้าถึงไฟล์ WordPress ทำงานอย่างไร
หากคุณเคยเห็นรายการไฟล์และไดเรกทอรี WordPress ในไคลเอ็นต์ FTP หรือบน cPanel คุณจะเห็นตัวเลข 3 หลัก หรือสตริงตัวอักษร rwx 9 ตัว ติดอยู่กับแต่ละไฟล์และไดเรกทอรี นี่คือสิทธิ์การเข้าถึงไฟล์ ซึ่งถูกนำไปใช้กับแต่ละไฟล์และไดเรกทอรีอย่างแยกต่างหาก
มี 2 ด้านที่เกี่ยวข้องกันของสิทธิ์การเข้าถึงไฟล์: 1) ประเภทของสิทธิ์ และ 2) บทบาท ทั้งสองด้านทำงานร่วมกันเพื่อระบุว่าสิทธิ์ถูกนำไปใช้กับไฟล์และไดเรกทอรีอย่างไร
ประเภทของสิทธิ์
มี 3 ประเภทของสิทธิ์การเข้าถึงไฟล์ใน WordPress ได้แก่ อ่าน เขียน และรัน และแสดงใน 2 รูปแบบ:
| สิทธิ์ | ความหมาย | ตัวเลข | สัญลักษณ์ |
|---|---|---|---|
| อ่าน (Read) | ผู้ใช้สามารถดูเนื้อหาไฟล์หรือไดเรกทอรีได้ แต่ไม่สามารถเปลี่ยนแปลงได้ | 4 | r |
| เขียน (Write) | ผู้ใช้ได้รับอนุญาตให้แก้ไขเนื้อหาไฟล์หรือไดเรกทอรี แต่ไม่สามารถรันได้ | 2 | w |
| รัน (Execute) | ผู้ใช้ได้รับอนุญาตให้รันไฟล์สคริปต์ หรือรันสคริปต์ภายในไดเรกทอรี | 1 | x |
| ไม่มีสิทธิ์ | ผู้ใช้ไม่มีการเข้าถึงไฟล์หรือไดเรกทอรี | 0 | – |
บทบาท (Roles)
มี 3 หมวดหมู่ของบทบาท: เจ้าของผู้ใช้ (User Owner), เจ้าของกลุ่ม (Group Owner), และสาธารณะ (World)
- ผู้ใช้ (User): ผู้ใช้คือบุคคลหรือบัญชีเดี่ยวในระบบ ที่เป็นเจ้าของไฟล์หรือไดเรกทอรี
เมื่อคุณใช้ไคลเอ็นต์ FTP เข้าสู่เซิร์ฟเวอร์เว็บไซต์ คุณจะต้องมีชื่อผู้ใช้และรหัสผ่าน ชื่อผู้ใช้นี้ระบุบัญชีผู้ใช้ FTP เช่นกัน เซิร์ฟเวอร์เว็บก็ใช้บัญชีเพื่อเข้าถึงไฟล์และไดเรกทอรี ดังนั้นแม้จะไม่มี "บุคคล" จริงๆ อยู่เบื้องหลังบัญชี แต่ยังถือว่าเป็นผู้ใช้ - กลุ่ม (Group): กลุ่มคือชุดของผู้ใช้ และสามารถกำหนดเป็นเจ้าของได้ มันเป็นวิธีที่สะดวกในการให้สิทธิ์เจ้าของแก่กลุ่มผู้ใช้
- สาธารณะ (World): ผู้ใช้คนอื่นๆ ทุกคนที่ไม่ได้เป็นเจ้าของไฟล์หรือไดเรกทอรีในคำถาม และไม่ได้เป็นส่วนหนึ่งของกลุ่มผู้ใช้
บทบาทเหล่านี้เหมือนกันทั่วระบบต่างๆ แม้จะใช้ชื่อเรียกที่ต่างกันก็ตาม ตัวอย่างเช่น ในบางระบบ "World" อาจเรียกว่า "Public" เจ้าของผู้ใช้มักเรียกว่า "User" ซึ่งอาจทำให้สับสน ไม่ต้องกังวล ทุกครั้งที่คุณเห็นชุดของสิทธิ์การเข้าถึงไฟล์ WordPress นี่คือบทบาทที่พวกมันอ้างถึง
การถอดรหัสตัวเลขและสัญลักษณ์ของสิทธิ์
ตอนนี้เรามีความเข้าใจพื้นฐานเกี่ยวกับสิทธิ์แต่ละอย่างของ WordPress ที่อนุญาตและบทบาทที่พวกมันนำไปใช้ สตริงของสัญลักษณ์และตัวเลขอาจจะมีความหมายมากขึ้น
ผู้ใช้ กลุ่ม และบทบาทสาธารณะ ต้องได้รับการมอบสิทธิ์สำหรับแต่ละไฟล์หรือไดเรกทอรี ดังนั้นคุณอาจสังเกตเห็นว่ามี 3 ชุดของสัญลักษณ์ หรือตัวเลข 3 หลักที่บางครั้งเกิน 0, 1, 2, และ 4
ในโครงร่างสัญลักษณ์ (Symbolic) ชุดแรกของ 3 สัญลักษณ์ หมายถึงสิทธิ์ไฟล์สำหรับผู้ใช้ ชุดถัดไป 3 สัญลักษณ์สำหรับกลุ่ม และชุดสุดท้าย 3 สัญลักษณ์สำหรับสาธารณะ
ในโครงร่างตัวเลข (Numeric) ตัวเลขแรก หมายถึงสิทธิ์ไฟล์สำหรับผู้ใช้ ตัวที่สองสำหรับกลุ่ม และตัวที่สามสำหรับสาธารณะ อย่างไรก็ตาม ในโครงร่างตัวเลข ตัวเลขสิทธิ์คือผลรวมของสิทธิ์ที่มีอยู่ทั้งหมดสำหรับแต่ละบทบาท
ดังนั้น ในขณะที่ 0, 1, 2, และ 4 หมายถึง ไม่มีสิทธิ์, อ่าน, เขียน, และรัน ตามลำดับ ส่วนตัวเลขที่เหลือหมายถึง:
- 3 = (2 + 1) = เขียน + รัน
- 5 = (4 + 1) = อ่าน + รัน
- 6 = (4 + 2) = อ่าน + เขียน
- 7 = (4 + 2 + 1) = อ่าน + เขียน + รัน
ตัวอย่างสิทธิ์ WordPress สำหรับไฟล์หรือไดเรกทอรี:
| ผู้ใช้ (User) | กลุ่ม (Group) | สาธารณะ (World) | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 777 | rwxrwxrwx | อ่าน | เขียน | รัน | อ่าน | เขียน | รัน | อ่าน | เขียน | รัน |
| 644 | rw-r–r– | อ่าน | เขียน | – | อ่าน | – | – | อ่าน | – | – |
| 755 | rwxr-xr-x | อ่าน | เขียน | รัน | อ่าน | – | รัน | อ่าน | – | รัน |
| 440 | r–r—– | อ่าน | – | – | อ่าน | – | – | – | – | – |
สิทธิ์การเข้าถึงไฟล์ที่แนะนำใน WordPress
วิธีการทำงานของ WordPress หรือระบบใดๆ ก็ตาม คือ ไฟล์เข้าถึงกันและกันเพื่อทำงานต่างๆ ดังนั้น แม้ 000 หรือ 440 อาจจะเป็นสิทธิ์การเข้าถึงไฟล์ที่ปลอดภัยที่สุด แต่ก็ไม่เป็นประโยชน์
ในทางกลับกัน 777 เป็นอันตรายมาก เพราะปล่อยให้ไฟล์หรือไดเรกทอรีเปิดโอกาสให้ผู้ใช้ทุกคนแก้ไขได้ ดังนั้นคุณจะไม่เคยพบคำแนะนำที่ตั้งค่าไฟล์หลัก (core files) เป็น 777 และนอกจากกรณี极少数 ก็ไม่มีไดเรกทอรีไหนที่ควรเป็น 777
นี่คือสิทธิ์การเข้าถึงไฟล์ที่แนะนำสำหรับเว็บไซต์ WordPress ของคุณ:
- ไดเรกทอรีราก (โดยปกติคือ public_html): 755
- wp-admin: 755
- wp-includes: 755
- wp-content: 755
- wp-content/themes: 755
- wp-content/plugins: 755
- wp-content/uploads: 755
- .htaccess: 644
- index.php: 644
- wp-config.php: 640
โดยทั่วไป สิทธิ์ไดเรกทอรีและโฟลเดอร์ของ WordPress ควรตั้งเป็น 755 และสิทธิ์ไฟล์ส่วนใหญ่ควรเป็น 644 นี่คือสิทธิ์การเข้าถึงที่ WordPress แนะนำให้ตั้งค่า สิทธิ์เหล่านี้ยังจำเป็นสำหรับการอัปเดตอัตโนมัติของ WordPress ให้ทำงานได้อย่างถูกต้อง สิทธิ์ที่เข้มงวดเกินไปจะทำให้การอัปเดตอัตโนมัติล้มเหลว
สิ่งสำคัญคือ สิทธิ์การเข้าถึงไฟล์ขึ้นอยู่กับการตั้งค่าโฮสติ้งของเซิร์ฟเวอร์มาก เนื่องจากมีความสำคัญว่าบัญชีผู้ใช้ใดที่กระบวนการเซิร์ฟเวอร์เว็บใช้เพื่อโต้ตอบกับไฟล์เว็บไซต์ของคุณ
ตัวอย่างเช่น เราแนะนำสิทธิ์ 640 สำหรับไฟล์ wp-config.php แต่สิทธิ์นี้จะไม่ทำงานบนโฮสต์ทุกแห่ง ในกรณีนั้น คุณจะต้องเปลี่ยนกลับเป็น 644
วิธีการเปลี่ยนสิทธิ์การเข้าถึงไฟล์ WordPress
สิทธิ์การเข้าถึงไฟล์ WordPress มีแนวคิดที่เรียบง่ายแต่อาจยุ่งยากในการปฏิบัติ เราแนะนำให้สำรองข้อมูลก่อนทำการเปลี่ยนแปลงใดๆ ที่แบ็กเอนด์ของเว็บไซต์ หากมีสิ่งเล็กน้อยผิดพลาด สำรองข้อมูลจะช่วยชีวิตเว็บไซต์ของคุณ
คุณสามารถเปลี่ยนหรือแก้ไขสิทธิ์ไฟล์ใน WordPress ที่ระดับไฟล์และระดับไดเรกทอรี ซึ่งจะส่งผลต่อสิทธิ์ไฟล์ของเนื้อหาภายในไดเรกทอรีด้วย (Recursive) ในทุกกรณี คุณต้องเข้าถึงไฟล์เว็บไซต์ของคุณ
มีหลายวิธีในการเข้าถึงไฟล์เว็บไซต์และเปลี่ยนหรือแก้ไขสิทธิ์ WordPress คุณสามารถเลือกวิธีที่เหมาะสมที่สุดได้
เปลี่ยนสิทธิ์ไฟล์โดยใช้ cPanel
cPanel เป็นซอฟต์แวร์แผงควบคุมโฮสติ้งที่ใช้กันอย่างแพร่หลาย ดังนั้นเราจึงใช้มันสำหรับบทช่วยสอนนี้ โฮสต์เว็บของคุณอาจใช้ซอฟต์แวร์อื่น เช่น Plesk หรือ Webmin ขั้นตอนจะสอดคล้องกันในส่วนใหญ่ แม้แดชบอร์ดจะมีลักษณะต่างกัน
- เข้าสู่ระบบบัญชี cPanel ของคุณ คุณจะพบลิงก์บนแดชบอร์ดโฮสต์เว็บ หรือพิมพ์ /cpanel หลัง URL ของเว็บไซต์
- คลิกที่ File Manager ในส่วน Files
- ค้นหาไดเรกทอรีรากของเว็บไซต์ และขยายไดเรกทอรีเพื่อดูเนื้อหา โดยทั่วไป ไดเรกทอรีรากคือ public_html
- ไฟล์และไดเรกทอรีของเว็บไซต์ทั้งหมดควรจะมองเห็นได้ในหน้าต่าง explorer คอลัมน์หนึ่งควรจะเป็น Permissions
- คลิกขวาที่ไฟล์หรือไดเรกทอรี และเลือก Change Permissions จากเมนูแบบดรอปดาวน์
- จะเปิดกล่องโต้ตอบสิทธิ์ ซึ่งคุณสามารถตั้งค่าสิทธิ์ได้ตามต้องการ
- คลิก Change Permissions เพื่อบันทึกและออก
หมายเหตุ: คุณสามารถเลือกไฟล์และไดเรกทอรีหลายรายการและเปลี่ยนสิทธิ์การเข้าถึงพร้อมกันได้
เปลี่ยนสิทธิ์ไฟล์ WP โดยใช้ FTP
FTP เป็นอีกวิธีหนึ่งในการเชื่อมต่อกับเซิร์ฟเวอร์เว็บไซต์เพื่อเข้าถึงไฟล์ คุณจะต้องมีไคลเอ็นต์ FTP หากโฮสต์เว็บของคุณไม่มีอินเทอร์เฟซที่ใช้ได้ เราใช้ Cyberduck สำหรับบทช่วยสอนนี้ แม้ FileZilla จะเป็นไคลเอ็นต์ FTP ยอดนิยมอีกตัวหนึ่ง
- เข้าสู่เซิร์ฟเวอร์เว็บไซต์ด้วยข้อมูลประจำตัว FTP คุณจะต้องมีชื่อเซิร์ฟเวอร์หรือที่อยู่ IP, ชื่อผู้ใช้ และรหัสผ่าน ในบางกรณี อาจต้องการหมายเลขพอร์ตด้วย
- ค้นหาไดเรกทอรีราก และเปิดมัน โดยทั่วไป ไดเรกทอรีรากคือ public_html
- หากไคลเอ็นต์ FTP ของคุณไม่แสดงสิทธิ์ไฟล์โดยอัตโนมัติ คุณอาจต้องเปิดการตั้งค่านั้น เลือกไฟล์หรือไดเรกทอรี และคลิกขวาเพื่อเปลี่ยนสิทธิ์ บน Cyberduck สิทธิ์อยู่ภายใต้เมนู Info
- เปลี่ยนสิทธิ์โดยใช้เช็กบ็อกซ์ หรือป้อนรหัสตัวเลข 3 หลัก
เปลี่ยนสิทธิ์ WordPress โดยใช้ SSH (chmod)
SSH ใช้อินเทอร์เฟซบรรทัดคำสั่ง (Command-line) เพื่อโต้ตอบกับไฟล์บนเซิร์ฟเวอร์ ดังนั้น สิ่งต่างๆ เช่น สิทธิ์ ซึ่งเราเห็นได้ง่ายผ่าน File Manager ของ cPanel หรือไคลเอ็นต์ FTP จะไม่มองเห็นได้ทันทีบนบรรทัดคำสั่ง ดังนั้นจึงมีขั้นตอนเพิ่มเติมสำหรับการเปลี่ยนสิทธิ์การเข้าถึงไฟล์ WordPress โดยใช้ SSH
- เข้าสู่เซิร์ฟเวอร์จากบรรทัดคำสั่ง เราใช้ macOS Terminal เพื่อเข้าสู่เซิร์ฟเวอร์ของเรา
- นำทางไปยังไดเรกทอรีรากของเว็บไซต์ ในกรณีของเราคือ public_html
- ตรวจสอบสิทธิ์ที่มีอยู่ของไฟล์และไดเรกทอรี คุณสามารถทำได้ด้วยคำสั่ง ls -l
- หมายเหตุ: ขีดนำหน้า (leading dash) หน้าสิทธิ์ไฟล์ระบุประเภทไฟล์ ไฟล์ถูกแทนด้วยขีดกลาง (-) และไดเรกทอรีกับตัว d เล็ก นี่เป็นอิสระจากสิทธิ์
- ใช้คำสั่ง chmod เพื่อเปลี่ยนสิทธิ์ของไฟล์หรือไดเรกทอรี
เราสร้างไดเรกทอรีชั่วคราวชื่อ temp และสร้าง 2 ไดเรกทอรีย่อยในมัน คือ temp1 และ temp2 ที่นี่คุณเห็นสิทธิ์ของทั้งสองเป็น 775 ซึ่งเป็นสิทธิ์เริ่มต้นสำหรับไดเรกทอรีบนเว็บไซต์นี้
จากนั้น เราเปลี่ยนสิทธิ์ของ temp1 จาก 775 เป็น 755 ไวยากรณ์ของคำสั่งคือ: chmod <permission> <file or directory name>
ตามที่คุณเห็นจากการใช้คำสั่ง ls -l อีกครั้ง สิทธิ์ของ temp1 ได้เปลี่ยนไปสำหรับเจ้าของกลุ่ม
การตั้งค่าสิทธิ์สำหรับไดเรกทอรีทั้งหมดในครั้งเดียว
ด้วยคำสั่ง chmod คุณยังสามารถเปลี่ยนสิทธิ์สำหรับไดเรกทอรีและเนื้อหาทั้งหมดในครั้งเดียวได้ ไวยากรณ์สำหรับการดำเนินการนี้คือ: chmod -R <permission> <directory name> ตัว -R ใช้ระบุว่าคำสั่งต้องถูกดำเนินการแบบ Recursive (เวียนเกิด)
ด้วยวิธีนี้ เราสามารถตั้งค่าสิทธิ์ของไดเรกทอรี temp และเนื้อหาทั้งหมด เราเปลี่ยนสิทธิ์เป็น 750
อย่างไรก็ตาม เราแนะนำให้ระมัดระวังเมื่อใช้คำสั่ง Recursive มันอาจนำไปสู่ผลลัพธ์ที่ไม่พึงประสงค์ ดังนั้นหากคุณไม่แน่ใจอย่างแน่นอน ให้ตั้งค่าสิทธิ์แต่ละรายการแยกต่างหาก
การตั้งค่าสิทธิ์สำหรับไฟล์และไดเรกทอรีทั้งหมดบนเว็บไซต์
ตามคำแนะนำของเราข้างต้น คุณอาจต้องการกระบวนการขั้นตอนเดียวเพื่อตั้งค่าสิทธิ์ทั้งหมดสำหรับไฟล์และไดเรกทอรีของเว็บไซต์ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อตั้งค่าสิทธิ์ไฟล์เป็น 644 และสิทธิ์ไดเรกทอรีเป็น 755
- find . -type f -exec chmod 644 {} +
- find . -type d -exec chmod 755 {} +
เมื่อคำสั่งเหล่านี้ถูกดำเนินการ คุณจะเห็นรายการไฟล์และไดเรกทอรีที่สิทธิ์ถูกเปลี่ยน
การเข้าใจค่า umask
ในบางบทความ คุณอาจพบคำสั่ง umask ในบริบทของสิทธิ์ไฟล์ คำสั่ง umask เมื่อถูกดำเนินการ จะคืนค่าที่เป็น offset (ค่าปรับ) สำหรับสิทธิ์ไฟล์สำหรับบัญชีผู้ใช้เฉพาะ ค่านั้นจะถูก offset จากสิทธิ์ไฟล์เริ่มต้น 0666 และสิทธิ์ไดเรกทอรีเริ่มต้น 0777 สำหรับไฟล์และไดเรกทอรีใหม่ที่ถูกสร้างขึ้นทั้งหมด
ตัวอย่างเช่น เมื่อเรารันคำสั่ง umask มันคืนค่า 0002 นั่นหมายความว่า ไฟล์ใหม่ทุกไฟล์ที่สร้างจะได้รับหมายเลขสิทธิ์ 666 offset ด้วย 002 ซึ่งคือ 664 เช่นเดียวกัน ไดเรกทอรีใหม่ทุกอันจะได้รับหมายเลขสิทธิ์ 777 offset ด้วย 002 ซึ่งคือ 775 นี่ไม่ใช่การลบ แต่เป็น offset สำหรับบทบาท World
มีวิธีการเปลี่ยนตัวเลือก umask ทั้งชั่วคราวและถาวร
เปลี่ยนสิทธิ์ WP โดยใช้ปลั๊กอิน
หากคุณไม่สะดวกกับ cPanel, FTP, หรือ SSH คุณยังสามารถใช้ปลั๊กอินอย่าง All in One WP Security เพื่อเปลี่ยนสิทธิ์การเข้าถึงไฟล์ WordPress บางส่วนได้
- ติดตั้งและเปิดใช้งาน All in One WP Security จาก wp-admin
- ไปที่ Filesystem Security ภายใต้ WP Security จากแถบเมนูด้านซ้าย
- แท็บแรก File Permissions มีรายการไฟล์และไดเรกทอรีหลักของ WordPress บางส่วน รายการแสดงการตั้งค่าสิทธิ์ไฟล์ปัจจุบันและสิทธิ์ที่แนะนำ คุณสามารถเลือกตั้งค่าสิทธิ์เป็นสิทธิ์ที่แนะนำโดยคลิกปุ่มที่มาพร้อมกัน
ปลั๊กอินแสดงเพียงไม่กี่ไดเรกทอรีและไฟล์ และจะให้คุณตั้งค่าสิทธิ์เป็นสิทธิ์ที่แนะนำเท่านั้น ดังนั้น ขอบเขตของการตั้งค่าสิทธิ์การเข้าถึงไฟล์ WordPress ด้วยปลั๊กอินนี้จำกัดอยู่แล้ว
เมื่อไหร่ควรเปลี่ยนสิทธิ์การเข้าถึงไฟล์และไดเรกทอรี WordPress
การเปลี่ยนสิทธิ์การเข้าถึงอาจเป็นงานที่น่ากลัว ดังนั้นจึงควรทราบว่าคุณต้องการเปลี่ยนมันจริงๆ เมื่อไหร่ จากประสบการณ์ของเรา หากนักพัฒนาที่มีประสบการณ์หรือโฮสต์เว็บติดตั้ง WordPress ให้เว็บไซต์ของคุณ คุณควรปล่อยสิทธิ์ไว้เป็นเดิมส่วนใหญ่
ในทางกลับกัน หากคุณติดตั้ง WordPress ด้วยตนเอง จะสมเหตุสมผลที่จะตั้งค่าสิทธิ์เป็นสิทธิ์ที่เราแนะนำข้างต้น คุณอาจต้องเปลี่ยนสิทธิ์หากปลั๊กอินหรือธีมโยนข้อผิดพลาดออกมา เราจะครอบคลุมกรณีเฉพาะเจาะจงมากขึ้นในส่วนถัดไป
คำแนะนำของเราคือ สำรองข้อมูลเว็บไซต์เสมอก่อนทำการเปลี่ยนแปลงใดๆ กับไฟล์เว็บไซต์ BlogVault ให้การสำรองข้อมูล WordPress ที่ดีที่สุด นอกจากนี้ เมื่อกู้คืนการสำรองข้อมูลของ BlogVault คุณสามารถเลือกที่จะเก็บสิทธิ์ไฟล์ใหม่ไว้ ดังนั้นคุณไม่ต้องตั้งค่ามันอีกครั้ง
การแก้ไขข้อผิดพลาดสิทธิ์ไฟล์และโฟลเดอร์
สิทธิ์การเข้าถึงไฟล์ WordPress อาจก่อให้เกิดข้อผิดพลาดบนบางโอกาส การตั้งค่าโฮสติ้งแต่ละแห่งแตกต่างกันออกไป ดังนั้นจึงไม่มีการตั้งค่าขนาดเดียวเหมาะกับทุกกรณีสำหรับสิทธิ์ แม้ในบทความนี้ เราพยายามใช้เส้นทางที่พบบ่อยที่สุดเพื่อทำให้สิทธิ์ไฟล์เข้าใจง่าย แต่ก็ยังมีความเป็นไปได้ที่คุณจะเจอข้อผิดพลาด
นี่คือปัญหาทั่วไปบางประการที่เว็บไซต์ WordPress อาจพบเนื่องจากสิทธิ์ไฟล์:
สิทธิ์ไฟล์ที่ไม่ถูกต้องสามารถทำให้เว็บไซต์ล่ม (Crash)
เมื่อตั้งค่าสิทธิ์ไฟล์เพื่อแข็งแกร่งเว็บไซต์เพื่อเหตุผลด้านความปลอดภัย เป็นเรื่องปกติที่จะ الوقوفฝั่งความระมัดระวัง อย่างไรก็ตาม หากคุณเข้มงวดเกินไปเมื่อจำกัดการเข้าถึง เช่น เจ้าของกลุ่ม เว็บไซต์ของคุณอาจล่ม
สถานการณ์นี้มักเกิดขึ้นเพราะกระบวนการเซิร์ฟเวอร์เว็บต้องการบัญชีผู้ใช้เพื่อรันโค้ดบนเว็บไซต์ของคุณ โดยทั่วไป บัญชีผู้ใช้ไม่ใช่บัญชีเจ้าของ ดังนั้นมักจะเป็นส่วนหนึ่งของเจ้าของกลุ่ม หากเจ้าของกลุ่มไม่มีสิทธิ์เพียงพอ กระบวนการเซิร์ฟเวอร์เว็บจะถูกขัดขวางและล้มเหลว ดังนั้น เว็บไซต์ของคุณจึงล่ม
วิธีแก้ไขคือ ตั้งค่าสิทธิ์ไฟล์เป็นสิทธิ์ที่แนะนำข้างต้น
สิทธิ์ไฟล์ที่ไม่ถูกต้องสามารถทำให้เว็บไซต์ปลิดโผ่อันตรายจากแฮกเกอร์
ด้านตรงข้ามของสเปกตรัมความระมัดระวัง เรามีสิทธิ์ไฟล์ที่鬆弛เกินไป เราไม่สามารถเน้นย้ำได้เพียงพอว่า สิทธิ์ 777 เป็นความคิดที่แย่มาก เพียงแค่ไม่ทำมัน
การอัปเดตอัตโนมัติอาจล้มเหลวหากสิทธิ์เข้มงวดเกินไป
WordPress ต้องการการเข้าถึง wp-admin, wp-includes และไฟล์หลักและไดเรกทอรีอื่นๆ อีกมากมายสำหรับการอัปเดตอัตโนมัติให้ทำงาน เราได้กล่าวถึงเรื่องนี้หลายครั้งในบทความนี้แล้ว อย่างไรก็ตาม ผู้ดูแลระบบหลายคนเลือกที่จะรักษาสิทธิ์ที่เข้มงวดส่วนใหญ่ของเวลา และชั่วคราวคลายมันเมื่อ WordPress ต้องการอัปเดตอัตโนมัติ
บางปลั๊กอินต้องการสิทธิ์ที่鬆弛กว่า
สิทธิ์การเข้าถึงไฟล์ WordPress ที่ถูกต้องค่อนข้างอนุญาต และไม่ควรโยนข้อผิดพลาดปลั๊กอินหรือธีม หากสิทธิ์การเข้าถึงไฟล์ของคุณตั้งเป็นสิทธิ์ที่แนะนำ และคุณยังพบข้อผิดพลาดที่ระบุว่าสิทธิ์ไฟล์เข้มงวดเกินไป เราแนะนำให้ติดต่อนักพัฒนาปลั๊กอินหรือธีมเพื่อแก้ไขปัญหา พวกเขาอาจสามารถอธิบายได้ว่าทำไมสิทธิ์ที่鬆弛กว่าจึงจำเป็น และคุณจึงสามารถตัดสินใจได้ว่าการผ่อนคลายความปลอดภัยของเว็บไซต์สำหรับปลั๊กอินหรือธีมนั้นเหมาะสมหรือไม่
'Required File Permissions to import the templates are missing.'
ข้อนี้มักเกิดจากสิทธิ์ไฟล์ที่ไม่สอดคล้องกัน และเป็นข้อความข้อผิดพลาดที่มักเห็นกับธีม Astra Astra ได้ให้โซลูชันสำหรับข้อผิดพลาดนี้ในเอกสารของพวกเขา
ข้อผิดพลาด 'Missing a temporary folder' เมื่อพยายามอัปโหลดไฟล์ไปยังเว็บไซต์
WordPress ต้องการโฟลเดอร์ชั่วคราวในไดเรกทอรี wp-content เพื่อให้สามารถอัปโหลดไฟล์ หรือแม้แต่รันการอัปเดตแกนกลาง ปลั๊กอิน หรือธีม หากโฟลเดอร์ชั่วคราวไม่มีอยู่ การดำเนินการเหล่านี้จะไม่ทำงาน และข้อผิดพลาดนี้จะปรากฏบนแดชบอร์ด
คุณสามารถเพิ่มบรรทัดโค้ดลงในไฟล์ wp-config.php และให้แน่ใจว่ามันมีสิทธิ์ที่ถูกต้องเพื่อให้สามารถรันได้อย่างถูกต้อง อ่านบทช่วยสอนฉบับเต็มเกี่ยวกับการแก้ไขปัญหานี้
'You need to make this file writable before you can save your changes. See Changing File Permissions for more information.'
คุณอาจพบข้อผิดพลาดนี้เมื่อพยายามแก้ไขไฟล์ธีมผ่าน Theme Editor ของ WordPress ข้อความข้อผิดพลาดปรากฏเมื่อกระบวนการที่รับผิดชอบในการเปลี่ยนแปลงไม่มีสิทธิ์เขียนเพียงพอ เพื่อ 알아ว่าบัญชีใดถูกใช้โดยกระบวนการที่เกี่ยวข้อง คุณจะต้องติดต่อนักพัฒนาหรือโฮสต์เว็บของคุณเพื่อขอความช่วยเหลือ
ข้อผิดพลาด 403 Forbidden
ข้อผิดพลาด 403 Forbidden หมายความว่าคุณไม่มีสิทธิ์เข้าถึงสิ่งที่คุณกำลังพยายามเข้าถึง ตัวอย่างเช่น หากเราพยายามเข้าถึงไดเรกทอรี wp-includes จากเบราว์เซอร์ แทนที่จะเป็นบัญชี FTP เราจะเห็นข้อผิดพลาด 403 Forbidden เนื่องจากขณะเข้าถึงไดเรกทอรีผ่านเบราว์เซอร์ สิทธิ์ที่ใช้คือของ World ไม่ใช่ของ User หรือ Group
ผู้ใช้พิเศษใน WordPress
ในบางบทช่วยสอน คุณอาจพบผู้ใช้ที่กล่าวถึงในบริบทของสิทธิ์การเข้าถึงไฟล์ WordPress รายการนี้ไม่ได้เป็นรายการครบถ้วน แต่เราได้ครอบคลุมบางส่วนที่พบบ่อยที่สุด:
Nobody
นี่คือผู้ใช้พิเศษที่ไม่มีการเข้าถึงไฟล์ เรารันโปรแกรมของเราด้วย nobody เพื่อให้แน่ใจว่าแม้จะมีการแฮก แฮกเกอร์ก็ไม่สามารถเข้าถึงไฟล์และไดเรกทอรีสำคัญได้ สำหรับข้อมูลเพิ่มเติม โปรดตรวจสอบเธรดนี้บน StackExchange
www-data
www-data เป็นบัญชีผู้ใช้พิเศษที่เป็นกลุ่มด้วย ใช้เพื่อรันกระบวนการเซิร์ฟเวอร์เว็บ ซึ่งไม่ควรมีสิทธิ์เท่ากับเจ้าของ
สิทธิ์การเข้าถึงไฟล์และโฟลเดอร์ WordPress ส่งผลต่อความปลอดภัยอย่างไร
โดยการออกแบบ เซิร์ฟเวอร์เว็บ (โดยเฉพาะที่รันบน Linux) ถูกออกแบบมาให้มีผู้ใช้หลายคน นี่จำเป็นสำหรับการดำเนินการหลายอย่าง แต่ก็เป็นความเสี่ยงด้านความปลอดภัย ดังนั้น เพื่อปกป้องไฟล์และไดเรกทอรีจากการเข้าถึง เปลี่ยนแปลง หรือรันโดยใครก็ได้ สิทธิ์จึงถูกสร้างขึ้น
มีสองแนวคิดที่เกี่ยวข้องกันเกี่ยวกับสิทธิ์การเข้าถึงไฟล์: บทบาทและสิทธิ์ ความกังวลด้านความปลอดภัยเกิดขึ้นส่วนใหญ่เกี่ยวกับสิทธิ์ของเจ้าของกลุ่มและสาธารณะ
เราให้ความสำคัญมากที่สุดกับการให้แน่ใจว่า World หรือ Public ไม่มีสิทธิ์เขียนสำหรับไฟล์และไดเรกทอรี เนื่องจากเราไม่ต้องการให้ใครแก้ไขไฟล์และไดเรกทอรีบนเว็บไซต์ของเรา เช่นเดียวกัน เราไม่ต้องการให้ไฟล์บางไฟล์สามารถรันหรือแม้แต่อ่านได้โดยสาธารณะ เช่น wp-config.php ไฟล์นี้มีข้อมูลประจำตัวฐานข้อมูลของเว็บไซต์เรา ดังนั้นการปล่อยให้ทุกคนอ่านได้เป็นเรื่องร้ายแรงสำหรับเว็บไซต์ของคุณ และเป็นการเชิญชวนมัลแวร์อย่างเป็นทางการ
ความเข้าใจผิดทั่วไปเกี่ยวกับสิทธิ์ไฟล์
ไม่ใช่เสมอไปที่การตั้งค่าที่เข้มงวดมากจะดีกว่าสำหรับความปลอดภัย เพราะจะทำให้เว็บไซต์ของคุณใช้ไม่ได้ การสร้างสมดุลระหว่างการเป็นคนมีเหตุผลและความพามัน (paranoid) เป็นกุญแจสำคัญ
บทบาทของ WordPress ได้แก่ ผู้ใช้ กลุ่ม และสาธารณะ มักถูกสับสนกับบทบาทบัญชีผู้ใช้ เช่น ผู้ดูแลระบบ (Administrator) และผู้ร่วมเขียน (Contributor) บทบาทบัญชีผู้ใช้จัดการกับสิทธิ์บน wp-admin และบ่งชี้การควบคุมสิ่งต่างๆ เช่น ปลั๊กอิน โพสต์ หรือธีม ในขณะที่เมื่อเราพูดถึงสิทธิ์ไฟล์ เรากำลังพูดถึงไฟล์และไดเรกทอรีบนเซิร์ฟเวอร์ หากคุณคิดถึงมัน ข้อมูลประจำตัวที่ใช้ล็อกอินเข้า wp-admin และที่ใช้สำหรับ FTP แตกต่างกันอย่างสมบูรณ์ นั่นเป็นเพราะทั้งสองสิ่งแตกต่างกันอย่างสิ้นเชิง
หากคุณล็อกอินเข้าบัญชีผู้ดูแลระบบของเว็บไซต์ คุณยังคงไม่สามารถเข้าถึงไฟล์ wp-config.php จากเบราว์เซอร์ได้ จากมุมมองของเซิร์ฟเวอร์ คุณเป็นบัญชีสาธารณะหรือ World แต่หากคุณล็อกอินเข้เซิร์ฟเวอร์ของคุณโดยใช้ FTP คุณสามารถมองเห็นไฟล์ wp-config.php ได้ง่ายๆ ในความเป็นจริง คุณไม่เพียงแต่อ่านได้ แต่ยังแก้ไขเนื้อหาได้อีกด้วย เนื่องจากบัญชี FTP ของคุณเป็นผู้ใช้ที่เป็นเจ้าของไฟล์ wp-config.php หรือมีสิทธิ์อ่านและแก้ไขมัน
บทสรุป
เราหวังว่าเรื่องนำสู่เรื่อง WordPress file permissions นี้จะมีประโยชน์ สิทธิ์ไฟล์ WP เป็นเฟืองสำคัญในความปลอดภัย WordPress และมักถูกอภิปรายในบริบทของ WordPress hardening
ความปลอดภัยที่ดีที่สุดที่คุณสามารถให้กับเว็บไซต์ WordPress ของคุณ คือ ติดตั้งปลั๊กอินความปลอดภัยระดับสูงอย่าง MalCare ด้วยพลังรวมของตัวสแกนมัลแวร์ ตัวกำจัดมัลแวร์ และไฟร์วอลล์ขั้นสูง MalCare เป็นโซลูชันความปลอดภัยครบวงจรสำหรับเว็บไซต์ WordPress ของคุณ
คำถามที่พบบ่อย (FAQs)
ฉันจะเปลี่ยนสิทธิ์บนเว็บไซต์ WordPress ได้อย่างไร?
คุณสามารถเปลี่ยนสิทธิ์ไฟล์และไดเรกทอรี WordPress ได้ผ่าน cPanel, FTP, หรือ SSH โดยใช้ cPanel หรือ FTP ให้ไปที่ไฟล์ที่ต้องการ คลิกขวา และตั้งค่าสิทธิ์ที่ต้องการ หากคุณใช้ SSH คุณสามารถใช้คำสั่ง chmod เพื่อตั้งค่าสิทธิ์
ฉันจะแก้ไขสิทธิ์ไฟล์และโฟลเดอร์ WordPress ได้อย่างไร?
เพื่อแก้ไขสิทธิ์ไฟล์และโฟลเดอร์ใน WordPress คุณต้องเข้าถึงไฟล์บนเซิร์ฟเวอร์เว็บไซต์ของคุณ มี 3 วิธีในการทำ: ใช้ cPanel, FTP, หรือ SSH เมื่อคุณเข้าถึงไฟล์แล้ว คุณสามารถนำทางไปยังไดเรกทอรีที่ถูกต้อง และตั้งค่าสิทธิ์ WordPress ให้ถูกต้อง
สิทธิ์ 755 คืออะไร?
สิทธิ์ 755 หมายความว่าเจ้าของผู้ใช้มีสิทธิ์เต็มรูปแบบคือ อ่าน เขียน และรัน เจ้าของกลุ่มและผู้ใช้คนอื่นๆ มีสิทธิ์เพียง อ่าน และ รัน เท่านั้น
ไฟล์ WordPress ควรมีสิทธิ์อะไร?
ไฟล์ WordPress ควรมีหมายเลขสิทธิ์สูงสุด 644 อะไรกว่านี้เป็นอันตรายต่อความปลอดภัย