File Permission 755 644 บน Linux Server

1. File Permission คืออะไร

File Permission หรือ สิทธิ์การเข้าถึงไฟล์ คือระบบควบคุมว่า "ใคร" สามารถทำอะไรกับไฟล์หรือโฟลเดอร์ได้บ้าง บน Linux และระบบปฏิบัติการ Unix-like ที่ใช้ใน Web Hosting และ VPS ทุกตัว

File Permission มีสามกลุ่มผู้ใช้ที่ระบบแยกสิทธิ์ให้:

และสามประเภทของสิทธิ์:

💡 สำคัญมาก

Web Server (Apache, Nginx) ต้องมีสิทธิ์ "อ่าน" ไฟล์เว็บได้เสมอ ถ้าตั้ง Permission ผิดจะได้รับ Error 403 Forbidden ทันที

2. ระบบ Octal: อ่านตัวเลข Permission

Linux แสดง Permission เป็นตัวเลขฐาน 8 (Octal) 3 หลัก แต่ละหลักแทนสิทธิ์ของ Owner / Group / Others ตามลำดับ

แต่ละหลักคือผลรวมของ: Read (4) + Write (2) + Execute (1)

# วิธีอ่าน Permission Permission: 7 5 5 │ │ └── Others: 4+1 = r-x (อ่านได้ รันได้ เขียนไม่ได้) │ └───── Group: 4+1 = r-x (อ่านได้ รันได้ เขียนไม่ได้) └──────── Owner: 4+2+1 = rwx (อ่าน เขียน รัน ได้ทุกอย่าง) Permission: 6 4 4 │ │ └── Others: 4 = r-- (อ่านได้อย่างเดียว) │ └───── Group: 4 = r-- (อ่านได้อย่างเดียว) └──────── Owner: 4+2 = rw- (อ่านและเขียนได้)

เมื่อดู Permission ใน File Manager หรือพิมพ์ ls -la บน Terminal จะเห็นเป็นตัวอักษร เช่น drwxr-xr-x ซึ่ง d = directory และตัวที่เหลือแสดงสิทธิ์ทีละกลุ่ม

3. Permission 755 คืออะไร ใช้กับอะไร

755 อ่านว่า rwxr-xr-x หมายความว่า:

ใช้ 755 กับอะไร

⚠️ ระวัง

ถ้าโฟลเดอร์ตั้งเป็น 700 หรือ 600 Web Server จะเข้าไม่ได้เลย → เว็บจะ 403 Forbidden ทันที

4. Permission 644 คืออะไร ใช้กับอะไร

644 อ่านว่า rw-r--r-- หมายความว่า:

ใช้ 644 กับอะไร

644 เหมาะสมเพราะ Web Server (Apache/Nginx ซึ่ง run ในกลุ่ม group หรือ others) ยังสามารถ อ่าน ไฟล์ได้ แต่ไม่สามารถแก้ไขได้ ปลอดภัยกว่า 777 มาก

5. ตารางเปรียบเทียบ Permission ที่ใช้บ่อย

Permissionสัญลักษณ์OwnerGroupOthersใช้กับ
644rw-r--r--อ่าน+เขียนอ่านอ่านไฟล์เว็บทั่วไป
755rwxr-xr-xทุกอย่างอ่าน+รันอ่าน+รันโฟลเดอร์ทั่วไป
600rw-------อ่าน+เขียนไม่มีไม่มีwp-config.php, SSH key
700rwx------ทุกอย่างไม่มีไม่มีโฟลเดอร์ส่วนตัว
777rwxrwxrwxทุกอย่างทุกอย่างทุกอย่าง❌ อันตราย! ห้ามใช้

6. ตั้งค่า Permission ใน DirectAdmin

AsiaGB Hosting ใช้ DirectAdmin ซึ่งมี File Manager ในตัวที่ช่วยตั้ง Permission ได้โดยไม่ต้องใช้ Terminal

ขั้นตอนการตั้งค่า

  1. เข้าสู่ระบบ DirectAdmin ของคุณ (เช่น yourdomain.com:2222)
  2. คลิก FilesFile Manager
  3. นำทางไปยังไฟล์หรือโฟลเดอร์ที่ต้องการ
  4. คลิกขวาที่ไฟล์/โฟลเดอร์ → เลือก Change Permissions
  5. กรอกตัวเลข Permission (เช่น 755 หรือ 644) แล้วคลิก OK
💡 Tips

ถ้าต้องการเปลี่ยน Permission ทีเดียวหลายไฟล์ ให้เลือกหลายไฟล์พร้อมกัน (Ctrl+Click) แล้วคลิกขวา → Change Permissions

ใช้ Select All เปลี่ยนทั้งโฟลเดอร์

สำหรับโฟลเดอร์ที่มีไฟล์เยอะ เช่น WordPress ให้เข้าไปในโฟลเดอร์ → กด Select All → Change Permissions ช่วยประหยัดเวลามาก แต่ต้องระวังว่าโฟลเดอร์และไฟล์ควรใช้ Permission ต่างกัน (755 vs 644)

7. คำสั่ง chmod บน VPS

สำหรับ AsiaGB VPS หรือผู้ใช้ที่เข้าถึง SSH Terminal ได้ คำสั่ง chmod ยืดหยุ่นกว่า File Manager มาก

คำสั่งพื้นฐาน

# เปลี่ยน Permission ไฟล์เดี่ยว chmod 644 index.php chmod 755 public_html # เปลี่ยน Permission แบบ Recursive (ทั้งโฟลเดอร์และข้างใน) chmod -R 755 wp-content/ chmod -R 644 wp-content/uploads/ # ดู Permission ปัจจุบัน ls -la ls -la wp-content/

คำสั่งแบบชาญฉลาด: แยกไฟล์และโฟลเดอร์

วิธีที่ถูกต้องที่สุดสำหรับ WordPress คือตั้ง Permission แยกโฟลเดอร์ (755) และไฟล์ (644) พร้อมกันด้วยคำสั่งเดียว:

# เข้าโฟลเดอร์ WordPress ก่อน cd /home/username/public_html # ตั้งโฟลเดอร์ทั้งหมดเป็น 755 find . -type d -exec chmod 755 {} \; # ตั้งไฟล์ทั้งหมดเป็น 644 find . -type f -exec chmod 644 {} \; # ตั้ง wp-config.php เป็น 600 (ปลอดภัยสูงสุด) chmod 600 wp-config.php
💡 คำแนะนำ

ใช้ find แทน chmod -R เสมอ เพราะสามารถแยก type เป็น file (-type f) หรือ directory (-type d) ได้ ทำให้โฟลเดอร์ได้ 755 และไฟล์ได้ 644 อย่างถูกต้อง

8. ปัญหาที่พบบ่อยจาก Permission ผิด

Error 403 Forbidden

เกิดเมื่อ Web Server ไม่มีสิทธิ์อ่านไฟล์หรือเข้าโฟลเดอร์

ปัญหาPermission ผิดแก้ไขเป็น
403 ทั้งเว็บpublic_html = 700755
403 หน้า indexindex.php = 600644
403 รูปภาพuploads/ = 700755
PHP Error ตอน writeuploads/ = 555755

เว็บโดน Hack / Shell Upload

สาเหตุหลักคือโฟลเดอร์ตั้งเป็น 777 ทำให้ทุกคนบนเซิร์ฟเวอร์เขียนไฟล์ได้ แฮกเกอร์ฝัง PHP shell ผ่านช่องนี้ได้ง่ายมาก

🚨 อันตราย

ห้ามตั้ง Permission 777 กับไฟล์หรือโฟลเดอร์ใดๆ เด็ดขาด โดยเฉพาะโฟลเดอร์ uploads/ ที่ผู้ใช้อัพโหลดไฟล์ได้ เพราะแฮกเกอร์จะอัพโหลด PHP shell แล้วรันคำสั่งบนเซิร์ฟเวอร์ได้ทันที

9. Security Tips สำหรับ WordPress บน Hosting

WordPress มีไฟล์ที่ต้องดูแลเป็นพิเศษ:

ไฟล์/โฟลเดอร์Permission แนะนำเหตุผล
public_html/755Web server ต้องเข้าถึงได้
ไฟล์ PHP ทั่วไป644อ่านได้ แต่เขียนไม่ได้
wp-config.php600มี DB password ต้องปลอดภัยสูงสุด
wp-content/755WordPress ต้องเขียนได้
wp-content/uploads/755Upload ไฟล์ได้ แต่ไม่ 777
.htaccess644Apache อ่านได้ คนอื่นเขียนไม่ได้

บทสรุป

  • 755 — สำหรับโฟลเดอร์ทั่วไป เพื่อให้ Web Server เข้าถึงได้
  • 644 — สำหรับไฟล์ทั่วไป HTML, PHP, CSS, JS ทุกอย่าง
  • 600 — สำหรับไฟล์ที่มีข้อมูลสำคัญ เช่น wp-config.php
  • 777 — ห้ามใช้เด็ดขาด เปิดช่องให้แฮกเกอร์ฝัง Shell ได้
  • ใช้ find -type d -exec chmod 755 และ find -type f -exec chmod 644 เพื่อตั้งให้ถูกต้องพร้อมกัน
  • DirectAdmin มี File Manager ให้คลิกตั้ง Permission ได้โดยไม่ต้องใช้ Terminal

คำถามที่พบบ่อย (FAQ)

Permission 777 อันตรายไหม

อันตรายมากครับ 777 ให้ทุกคนบนเซิร์ฟเวอร์เขียนและรันไฟล์ได้ แฮกเกอร์สามารถแทรก PHP shell เข้าไปได้ ห้ามใช้กับไฟล์หรือโฟลเดอร์ของเว็บเด็ดขาด

Permission สำหรับ WordPress ควรเป็นเท่าไหร่

WordPress แนะนำให้ใช้ 755 สำหรับโฟลเดอร์ และ 644 สำหรับไฟล์ โดยเฉพาะ wp-config.php ควรตั้งเป็น 600 เพื่อความปลอดภัยสูงสุด

Error 403 Forbidden เกี่ยวกับ Permission อย่างไร

Error 403 มักเกิดจาก Permission ผิด เช่น โฟลเดอร์ตั้งเป็น 700 ทำให้ web server อ่านไม่ได้ หรือไฟล์ index.html/index.php มี Permission 600 แก้โดยตั้งโฟลเดอร์เป็น 755 และไฟล์เป็น 644

ตั้ง chmod ใน DirectAdmin ได้ไหม

ได้ครับ เข้า DirectAdmin → Files → File Manager เลือกไฟล์หรือโฟลเดอร์ → คลิกขวา → Change Permissions แล้วกรอกตัวเลข Permission ที่ต้องการ

Permission 644 กับ 640 ต่างกันอย่างไร

644 ให้ others อ่านได้ ส่วน 640 ให้ others อ่านไม่ได้เลย สำหรับ web hosting ทั่วไปใช้ 644 เพราะ web server ต้องอ่านไฟล์ได้ แต่ไฟล์ที่มีข้อมูลสำคัญอย่าง config ควรใช้ 600 หรือ 640

คำสั่ง chmod ใช้อย่างไรให้เปลี่ยน Permission ทั้งโฟลเดอร์พร้อมกัน

ใช้ option -R (recursive) เช่น chmod -R 755 /home/user/public_html/wp-content/ แต่แนะนำให้ใช้ find -type d และ find -type f แยกกันเพื่อให้โฟลเดอร์ได้ 755 และไฟล์ได้ 644 อย่างถูกต้อง