DEV Community

Cover image for การจัดการสิทธิ์ไฟล์ (File Permission) ใน Linux
Pargorn Ruasijan
Pargorn Ruasijan

Posted on Originally published at pargorn.com

การจัดการสิทธิ์ไฟล์ (File Permission) ใน Linux

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

1. พื้นฐานของ Linux File Permission

Linux ใช้ระบบสิทธิ์ 3 ระดับ คือ

  • Owner (ผู้เป็นเจ้าของ) คนที่สร้างไฟล์หรือโฟลเดอร์
  • Group (กลุ่ม) ผู้ใช้ที่อยู่ในกลุ่มเดียวกัน
  • Others (อื่น ๆ) ผู้ใช้ที่ไม่ได้เป็นทั้งเจ้าของหรืออยู่ในกลุ่ม

สิทธิ์แบ่งเป็น 3 ประเภท

  • Read (r) อ่านไฟล์/ดูรายชื่อไฟล์ในโฟลเดอร์
  • Write (w) แก้ไขไฟล์/เพิ่มหรือลบไฟล์ในโฟลเดอร์
  • Execute (x) รันไฟล์ที่เป็นสคริปต์หรือโปรแกรม/เข้าโฟลเดอร์

2. การดูสิทธิ์ของไฟล์หรือโฟลเดอร์

ใช้คำสั่ง ls -l เพื่อดูรายละเอียดไฟล์

ตัวอย่างผลลัพธ์

-rwxr-xr--  1 user group  2048 Jan  5  example.sh
Enter fullscreen mode Exit fullscreen mode

อธิบาย -rwxr-xr--

  • - ไฟล์ธรรมดา (หากเป็นโฟลเดอร์จะเป็น d)
  • rwx สิทธิ์ของ Owner (อ่าน, เขียน, รัน)
  • r-x สิทธิ์ของ Group (อ่าน, รัน)
  • r-- สิทธิ์ของ Others (อ่านเท่านั้น)

3. การเปลี่ยนสิทธิ์ของไฟล์ (chmod)

การกำหนดด้วยตัวอักษร

  • เพิ่มสิทธิ์
chmod u+x example.sh  # เพิ่มสิทธิ์รันให้ Owner
chmod g+w example.txt  # เพิ่มสิทธิ์เขียนให้ Group
Enter fullscreen mode Exit fullscreen mode
  • ลบสิทธิ์
chmod o-r example.txt  # ลบสิทธิ์อ่านของ Others
Enter fullscreen mode Exit fullscreen mode

การกำหนดด้วยเลขฐาน 8 (Octal) หรือ แบบ Numeric

เลข 3 หลักแทนสิทธิ์ (r=4, w=2, x=1)

  • 7 (rwx) มีสิทธิ์ทั้งหมด
  • 6 (rw-) อ่านและเขียน
  • 5 (r-x) อ่านและรัน
  • 4 (r--) อ่านอย่างเดียว

ตัวอย่างการใช้งาน

chmod 755 example.sh  # Owner=เต็มสิทธิ์, Group=อ่าน+รัน, Others=อ่าน+รัน
chmod 644 example.txt  # Owner=อ่าน+เขียน, Group=อ่าน, Others=อ่าน
Enter fullscreen mode Exit fullscreen mode

การคำนวณแบบ Numeric สำหรับสิทธิ์ของไฟล์ใน Linux

Numeric Mode คือการใช้ตัวเลขฐานแปด (Octal) เพื่อแทนสิทธิ์ของไฟล์ใน Linux ซึ่งประกอบด้วย 3 ระดับคือ Owner, Group, และ Others
โดยแต่ละระดับประกอบด้วยสิทธิ์ 3 ประเภท Read (r), Write (w), และ Execute (x)

ตารางสิทธิ์ของไฟล์ใน Linux

สิทธิ์ คำอธิบาย ค่าเลขฐานแปด
r อ่าน (Read) 4
w เขียน (Write) 2
x รัน (Execute) 1
- ไม่มีสิทธิ์ 0

วิธีคำนวณ Numeric

  1. แยกสิทธิ์ออกเป็น 3 กลุ่ม Owner, Group, และ Others
  2. สำหรับแต่ละกลุ่ม
    • นำค่าของ r, w, x มารวมกันตามสิทธิ์ที่กำหนด
    • ถ้าไม่มีสิทธิ์ ให้ใช้ 0
  3. รวมค่าของทั้ง 3 กลุ่มเข้าด้วยกันเป็นเลข 3 หลัก

ตัวอย่างการคำนวณ Numeric Mode

  1. ตัวอย่างสิทธิ์
    • -rwxr-xr--
  2. แบ่งสิทธิ์

ตัวอย่างการคำนวณสิทธิ์ของไฟล์ใน Linux

กลุ่ม สิทธิ์ ค่าตัวเลข
Owner rwx 4 + 2 + 1 = 7
Group r-x 4 + 0 + 1 = 5
Others r-- 4 + 0 + 0 = 4
  1. รวมค่าของทั้ง 3 กลุ่ม
    • Numeric Mode = 754

ตัวอย่างเพิ่มเติม

ตัวอย่างการคำนวณสิทธิ์ของไฟล์ใน Linux

สิทธิ์ Owner Group Others Numeric Mode
-rw-r--r-- rw- r-- r-- 644
-rwx------ rwx --- --- 700
-rwxr-xr-x rwx r-x r-x 755
-rw-rw---- rw- rw- --- 660

4. การเปลี่ยนเจ้าของและกลุ่ม (chown และ chgrp)

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

chown user example.sh
Enter fullscreen mode Exit fullscreen mode

เปลี่ยนกลุ่มของไฟล์

chgrp group example.sh
Enter fullscreen mode Exit fullscreen mode

เปลี่ยนทั้งเจ้าของและกลุ่ม

chown user:group example.sh
Enter fullscreen mode Exit fullscreen mode

5. ความสำคัญของ Special Permissions

  1. SetUID (s)
    • รันไฟล์ในฐานะเจ้าของไฟล์ ไม่ใช่ผู้รัน
    • ใช้กับไฟล์โปรแกรม เช่น /usr/bin/passwd
chmod u+s example.sh
Enter fullscreen mode Exit fullscreen mode
  1. SetGID (s)
    • กำหนดให้ไฟล์หรือโฟลเดอร์ใหม่ในกลุ่มเดียวกัน
chmod g+s folder/
Enter fullscreen mode Exit fullscreen mode
  1. Sticky Bit (t)
    • กำหนดให้ลบไฟล์ในโฟลเดอร์ได้เฉพาะเจ้าของ
chmod +t /tmp
Enter fullscreen mode Exit fullscreen mode

6. ตัวอย่างการตั้งค่าสิทธิ์ในสถานการณ์จริง

  1. โฟลเดอร์ Public (อ่านได้ทุกคน)
chmod 755 /var/www/html/
Enter fullscreen mode Exit fullscreen mode
  1. ไฟล์ส่วนตัว (Owner เท่านั้นที่อ่านได้)
chmod 600 secret.txt
Enter fullscreen mode Exit fullscreen mode
  1. โฟลเดอร์ที่แชร์ในทีม
chmod 770 shared_folder/
Enter fullscreen mode Exit fullscreen mode

สรุป

การจัดการ Permission ของไฟล์ใน Linux ช่วยให้ระบบมีความปลอดภัยและจัดการได้ง่ายขึ้น การเข้าใจคำสั่งพื้นฐาน เช่น chmod, chown, และ ls -l จะช่วยให้คุณสามารถบริหารจัดการสิทธิ์ได้ถูกต้อง

Top comments (0)