เข้าใจ Linux Permission: rwx, chmod, chown แบบไม่งง

เข้าใจ Linux Permission: rwx, chmod, chown แบบไม่งง

ในระบบปฏิบัติการ Linux Server โดยเฉพาะงานดูแลระบบองค์กร ไม่ว่าจะเป็น Rocky Linux, Ubuntu Server หรือ Debian ปัญหาที่พบประจำคือ

“เว็บเข้าไม่ได้”, “Permission denied”, “อัปโหลดไฟล์ไม่ได้”, “Service อ่านไฟล์ config ไม่ได้”

ต้นเหตุส่วนใหญ่มาจาก File Permission และ Ownership ที่กำหนดไม่ถูกต้อง

บทความนี้จะอธิบาย rwx, chmod, chown แบบเข้าใจง่าย เห็นภาพ และสามารถนำไปใช้งานจริงได้ทันที


1️⃣ โครงสร้าง Permission ใน Linux คืออะไร?

รูปแบบที่เห็นจากคำสั่ง ls -l

-rwxr-xr-- 1 root www-data 4096 Feb 16 17:00 index.php

แยกความหมายออกเป็นส่วน ๆ


2️⃣ ความหมายของ rwx

ตัวอักษร ความหมาย ใช้กับไฟล์ ใช้กับโฟลเดอร์
r read อ่านไฟล์ ดูรายชื่อไฟล์
w write แก้ไขไฟล์ สร้าง/ลบไฟล์
x execute รันไฟล์ เข้าไปใน directory

 ตัวอย่างสถานการณ์จริง

  • ถ้าเว็บ Apache อ่านไฟล์ไม่ได้ → ไม่มี r

  • ถ้าอัปโหลดไฟล์ไม่ได้ → ไม่มี w

  • เข้าโฟลเดอร์ไม่ได้ → ไม่มี x


3️⃣ เลข 755, 644 มาจากไหน?

Linux ใช้เลขฐาน 8 (Octal)

ค่า ความหมาย
r = 4  
w = 2  
x = 1  

รวมกันเป็นตัวเลข

Permission คำนวณ ค่า
rwx 4+2+1 7
rw- 4+2 6
r-x 4+1 5
r– 4 4

ตัวอย่างยอดนิยม

ค่า ความหมาย
755 rwxr-xr-x
644 rw-r–r–
700 rwx——
777 rwxrwxrwx (อันตราย!)

4️⃣ chmod คืออะไร?

chmod = change mode (เปลี่ยน permission)

ใช้แบบตัวเลข

chmod 755 script.sh
chmod 644 index.php

ใช้แบบตัวอักษร

chmod u+x script.sh

chmod g-w file.txt

chmod o+r file.txt

ตัวอักษร ความหมาย
u user
g group
o others
a all

ตัวอย่างใช้งานจริง (งานเว็บเซิร์ฟเวอร์)

chmod -R 755 /var/www/html

find /var/www/html –type f –exec chmod 644 {} \;

  • โฟลเดอร์ = 755

  • ไฟล์ = 644

นี่คือ Best Practice สำหรับ Web Server


5️⃣ chown คืออะไร?

chown = change owner

เปลี่ยนเจ้าของไฟล์

ตัวอย่าง

chown root file.txt

chown www-data index.php

เปลี่ยน owner และ group พร้อมกัน

chown www-data:www-data index.php

ทำไม chown สำคัญ?

เช่น Apache/Nginx ทำงานในชื่อ user:

  • www-data (Ubuntu/Debian)

  • apache (Rocky Linux / CentOS)

ถ้าไฟล์เป็นของ root → เว็บจะเขียนไฟล์ไม่ได้


6️⃣ ตัวอย่างเคสที่เจอบ่อยในงานจริง

ปัญหา: WordPress อัปโหลดรูปไม่ได้

สาเหตุ:

  • owner ไม่ใช่ www-data

  • ไม่มี write permission

วิธีแก้:



ปัญหา: รัน script ไม่ได้

สาเหตุ:

  • ไม่มี execute permission

แก้ไข:



7️⃣ สรุปภาพรวม

คำสั่ง ใช้ทำอะไร
ls -l ดู permission
chmod เปลี่ยนสิทธิ์
chown เปลี่ยนเจ้าของ

8️⃣ เทคนิคจำง่ายสำหรับ SysAdmin

  • ไฟล์ทั่วไป → 644

  • โฟลเดอร์ → 755

  • Script → 755

  • อย่าใช้ 777 ถ้าไม่จำเป็น

  • Web Server ต้องเป็น owner ที่ service ใช้งาน


สรุป

Permission ใน Linux ไม่ได้ซับซ้อน ถ้าเข้าใจหลัก 3 อย่างนี้

  • rwx คืออะไร

  • ตัวเลข 755 มาจากไหน

  • chmod เปลี่ยนสิทธิ์

  • chown เปลี่ยนเจ้าของ

เมื่อเข้าใจ 4 เรื่องนี้ คุณจะสามารถแก้ปัญหา “Permission denied” ได้เกือบทั้งหมดในงานดูแลเซิร์ฟเวอร์จริง

สำหรับผู้ดูแลระบบมืออาชีพ การจัดการ Permission อย่างถูกต้อง คือพื้นฐานของความปลอดภัยและเสถียรภาพของระบบ