การทำความเข้าใจและจัดการสิทธิ์ของไฟล์ใน cPanel

สิทธิ์ของไฟล์กำหนดว่าใครสามารถอ่าน แก้ไข หรือเรียกใช้ไฟล์และโฟลเดอร์ในบัญชีโฮสติ้งของคุณได้ สิทธิ์ที่ถูกต้องมีความสำคัญอย่างยิ่งต่อการรักษาความปลอดภัยของเว็บไซต์และการทำงานที่ถูกต้องของทั้งบัญชี cPanel และเว็บไซต์ที่โฮสต์อยู่


สิทธิ์ของไฟล์คืออะไร?


บนเซิร์ฟเวอร์โฮสติ้งที่ใช้ Linux (ที่ cPanel ใช้งาน) ไฟล์และโฟลเดอร์แต่ละรายการจะมี เจ้าของ, กลุ่ม และชุดของ กฎสิทธิ์กำกับอยู่

สิทธิ์จะกำหนดว่ากระทำการใดได้บ้างสำหรับ:

  • ผู้ใช้ (เจ้าของ) - บัญชี cPanel ของคุณ

  • กลุ่ม - กลุ่มในระดับเซิร์ฟเวอร์

  • อื่นๆ/สาธารณะ - ทุกคนอื่นบนเซิร์ฟเวอร์

แต่ละรายการเหล่านี้สามารถมีสิทธิ์เข้าถึงไฟล์และไดเรกทอรีได้ 3 ประเภท:

  • Read (r) - อนุญาตให้ดูเนื้อหาไฟล์ / แสดงรายการไฟล์ในโฟลเดอร์

  • Write (w) - อนุญาตให้แก้ไขไฟล์ / เพิ่มหรือลบไฟล์ในโฟลเดอร์

  • Execute (x) - อนุญาตให้รันไฟล์ (สคริปต์, แอปพลิเคชัน) / เข้าถึง / เข้าสู่โฟลเดอร์

หมายเหตุ: โฟลเดอร์จะต้องมีสิทธิ์ Execute (x) เพื่อให้สามารถเข้าถึงได้


ระดับการเข้าถึงยังถูกกำหนดในรูปแบบ ตัวเลข:

  • 0 - ไม่สามารถเข้าถึงไฟล์ได้

  • 1 - เฉพาะการรันเท่านั้น

  • 2 - เฉพาะการเขียนเท่านั้น

  • 3 - เขียนและรัน

  • 4 - อ่านเท่านั้น

  • 5 - อ่านและรัน

  • 6 - อ่านและเขียน

  • 7 - อ่าน เขียน และรัน (สิทธิ์เต็ม)

ตัวอย่าง: ค่าที่ใช้บ่อยที่สุดคือ 755 และ 644

  • เจ้าของ: 7 - อ่าน เขียน รัน

  • กลุ่ม: 5 - อ่าน รัน

  • อื่นๆ: 5 - อ่าน รัน

  • เจ้าของ: 6 - อ่าน เขียน

  • กลุ่ม: 4 - อ่าน

  • อื่นๆ: 4 - อ่าน

เพื่อให้ไฟล์เว็บไซต์ของคุณแสดงผลได้ถูกต้องในเบราว์เซอร์ เราขอแนะนำให้ใช้สิทธิ์ดังต่อไปนี้:

ไฟล์ HTML และรูปภาพ ควรกำหนดเป็น 644 (0644) - อนุญาตให้ผู้ใช้ทุกคนอ่านไฟล์ แต่มีเพียงเจ้าของบัญชีเท่านั้นที่สามารถแก้ไขได้ โดยปกติสิทธิ์เหล่านี้จะถูกตั้งค่าโดยอัตโนมัติเมื่อสร้างไฟล์

โฟลเดอร์ ควรกำหนดเป็น 755 (0755) - อนุญาตให้ผู้อื่นอ่านและเข้าถึงเนื้อหาในโฟลเดอร์ แต่มีเพียงเจ้าของบัญชีเท่านั้นที่สามารถแก้ไขได้ โดยปกติสิทธิ์เหล่านี้จะถูกกำหนดโดยอัตโนมัติเมื่อสร้างโฟลเดอร์

ไฟล์ CGI (มักอยู่ในโฟลเดอร์ cgi-bin) ควรกำหนดเป็น 755 (0755) ซึ่งอนุญาตให้ผู้อื่นอ่านและรันไฟล์ แต่มีเพียงเจ้าของบัญชีเท่านั้นที่สามารถแก้ไขได้ สิทธิ์เหล่านี้ ไม่ได้ถูกตั้งค่าโดยอัตโนมัติเสมอไป และอาจต้องปรับเอง

หมายเหตุ: 

  1. หลีกเลี่ยงการตั้งค่าสิทธิ์เป็น 777 เนื่องจากเป็นความเสี่ยงด้านความปลอดภัยอย่างร้ายแรง

  2. การตั้งค่าสิทธิ์ไม่ถูกต้องอาจทำให้บัญชีโฮสติ้งของคุณมีความปลอดภัยลดลงอย่างมาก อนุญาตให้ผู้ที่ไม่ได้รับอนุญาตแก้ไขไฟล์ของคุณ เปิดเผยข้อมูลการตั้งค่าที่สำคัญ และเพิ่มความเสี่ยงต่อการติดมัลแวร์

  3. ในด้านการทำงานของเว็บไซต์ การตั้งค่าสิทธิ์ไม่ถูกต้องอาจทำให้เกิดข้อผิดพลาด 500 Internal Server Error, "403 Permission denied" อัปโหลดสื่อไม่สำเร็จ ปัญหาในการติดตั้งปลั๊กอินหรือธีม ฯลฯ


วิธีเปลี่ยนสิทธิ์สำหรับไฟล์และไดเรกทอรี


สามารถเปลี่ยนแปลงสิทธิ์ได้ 3 วิธีหลัก: โดยใช้ File Manager (ใน cPanel), SSH (บรรทัดคำสั่ง) หรือ cron job (การรันคำสั่งอัตโนมัติ) แต่ละวิธีเหมาะกับสถานการณ์ที่แตกต่างกัน

  • File Manager

เหมาะเมื่อคุณต้องการเปลี่ยนสิทธิ์สำหรับ ไฟล์/โฟลเดอร์เพียงหนึ่งหรือไม่กี่รายการเท่านั้น

  1. เข้าสู่ระบบบัญชี cPanel ของคุณ ไปที่ส่วน ไฟล์ และเปิดเมนู File Manager

    หรือจาก Hosting Manager ให้คลิก จัดการ ถัดจากแผนโฮสติ้ง ไปที่ ไฟล์และที่เก็บข้อมูล แล้วกด จัดการไฟล์ ใกล้ชื่อเว็บไซต์ คุณจะถูกนำไปยังโฟลเดอร์รากของโดเมนใน File Manager

  2. คุณจะเห็นสิทธิ์ปัจจุบันในคอลัมน์ด้านขวาที่ชื่อว่า Permissions:


  3. หากต้องการแก้ไขสิทธิ์ปัจจุบันสำหรับไฟล์/โฟลเดอร์ใด ๆ ให้คลิก หนึ่งครั้ง ที่สิทธิ์ของไฟล์ กำหนดตัวเลขที่ต้องการ แล้วกด บันทึก (หรือ Enter):


    นอกจากนี้ยังสามารถเปลี่ยนสิทธิ์ได้โดย คลิกขวา ที่ไฟล์/โฟลเดอร์แล้วเลือกตัวเลือก เปลี่ยนสิทธิ์ หน้าต่างที่เกี่ยวข้องจะปรากฏขึ้น:



    ปรับ ช่องทำเครื่องหมายแล้วคลิก เปลี่ยนสิทธิ์ เพื่อบันทึก


    เคล็ดลับ: ตารางการตั้งค่าเดียวกันจะเปิดขึ้นเมื่อใช้เมนูแถบด้านบนของ File Manager ตัวเลือก Permissions:


  • SSH command line

SSH ช่วยให้คุณเปลี่ยนสิทธิ์โดยใช้ chmod คำสั่ง วิธีนี้เหมาะเมื่อคุณต้องการเปลี่ยนสิทธิ์สำหรับ ไฟล์จำนวนมาก

  1. เข้าสู่บัญชีโฮสติ้งของคุณ ผ่าน SSH

  2. จากนั้นไปยังไดเรกทอรีรากของโดเมนของคุณโดยใช้คำสั่งต่อไปนี้:

    cd /home/username/root_folder

    หมายเหตุ: อย่าลืมแทนที่ username ด้วยชื่อผู้ใช้ cPanel จริงของคุณ และ root_folder ด้วยชื่อไดเรกทอรีที่ถูกต้องสำหรับโดเมนของคุณ:

  3. รันคำสั่งด้านล่างเพื่อกำหนดสิทธิ์ไดเรกทอรีเป็น 0755 และสิทธิ์ไฟล์เป็น 0644:

    find ./ -type f -not -perm 644 -not -name ".ftpquota" -exec chmod 644 -c {} \;; find ./ -type d -not -perm 755 -not -group nobody -exec chmod 755 -c {} \;

  4. หลังจากรันคำสั่ง รายชื่อไฟล์และโฟลเดอร์ที่มีการอัปเดตสิทธิ์จะแสดงขึ้น:


  • Cron Jobs

Cron job ช่วยให้คุณตั้งเวลาคำสั่ง (เช่น chmod) ให้รันโดยอัตโนมัติในช่วงเวลาที่กำหนด

  1. ใน cPanel ของคุณ ไปที่เมนู Cron Jobs:


  2. ในส่วน เพิ่ม Cron Job ใหม่ ตั้งค่า การตั้งค่าทั่วไป เป็น หนึ่งครั้งต่อห้านาที และเพิ่มสคริปต์ต่อไปนี้ในบรรทัด คำสั่ง :

    cd /home/username/root_folder && find ./ -type f -not -perm 644 -not -name ".ftpquota" -exec chmod 644 -c {} \;; find ./ -type d -not -perm 755 -not -group nobody -exec chmod 755 -c {} \;

    หมายเหตุ 1: อย่าลืมแทนที่ username ด้วยชื่อผู้ใช้ cPanel จริงของคุณ และ root_folder ด้วยชื่อไดเรกทอรีที่ถูกต้องสำหรับโดเมนของคุณ

    หมายเหตุ 2: สคริปต์ต้อง ไม่ ถูกรันในไดเรกทอรีหลัก (เช่น /home/username) ไดเรกทอรีหลักมีโฟลเดอร์ระบบและโฟลเดอร์เฉพาะบัญชีที่ต้องการสิทธิ์แบบกำหนดเองเพื่อให้ cPanel ทำงานได้อย่างถูกต้อง การเปลี่ยนสิทธิ์เหล่านั้นเป็นค่าเริ่มต้น (0755/0644) อาจทำให้เกิดปัญหาด้านความปลอดภัย ขัดแย้งกับบริการ หรือทำให้แผงควบคุมทำงานผิดปกติ ซึ่งสามารถแก้ไขได้โดยการกู้คืนข้อมูลสำรอง cPanel แบบเต็มเท่านั้น


  3. รัน cron job แล้ว รอสูงสุด 5 นาที เพื่อให้สคริปต์ดำเนินการเปลี่ยนแปลง หลังจากนั้นจำเป็นต้องลบออก:


หากคุณไม่แน่ใจเกี่ยวกับการตั้งค่าสิทธิ์ที่ถูกต้อง ควรเปลี่ยนแปลงให้น้อยที่สุดหรือ ติดต่อฝ่ายสนับสนุน เพื่อป้องกันความเสี่ยงด้านความปลอดภัยหรือการหยุดชะงักของบริการ

จำเป็นต้องใช้อีเมลที่ถูกต้อง