← สารบัญบทเรียน M5 · Permissions
M5 · หัวข้อสอบ

สิทธิ์ไฟล์ — ใครทำอะไรกับไฟล์ได้บ้าง

บนเครื่อง Linux หนึ่งเครื่องมีคนใช้หลายคน — ระบบสิทธิ์ (permissions) คือกำแพงที่กันไม่ให้คนหนึ่งไปแอบดูหรือแก้ของอีกคน บทนี้จะสอนตั้งแต่ “อ่านบรรทัด ls -l ให้เป็น” ไปจนถึงสิทธิ์พิเศษและ ACL ที่ออกสอบแน่ๆ

🌱 บทนี้เขียนเพื่อคนที่ไม่เคยแตะ Linux มาก่อนเลย

1ทำไม Linux ต้องมีระบบสิทธิ์

ถ้าคุณใช้คอมพิวเตอร์ส่วนตัวที่บ้านคนเดียว คุณอาจไม่เคยรู้สึกว่า “สิทธิ์ไฟล์” สำคัญตรงไหน — แต่ Linux ถูกออกแบบมาตั้งแต่แรกให้ หลายคนใช้เครื่องเดียวกันพร้อมกัน ลองนึกถึงเซิร์ฟเวอร์ของบริษัทที่มีพนักงาน 50 คนล็อกอินเข้ามาทำงาน

ถ้าไม่มีระบบกั้น ใครก็จะอ่านเงินเดือนของคนอื่น แก้ไฟล์ตั้งค่าของระบบ หรือลบงานของเพื่อนทิ้งได้ตามใจ — ระบบสิทธิ์คือ กุญแจ ที่บอกว่า “ไฟล์นี้ ใครเปิดดูได้ ใครแก้ได้ ใครรันได้”

💡 เปรียบเทียบให้เห็นภาพ

นึกถึง อพาร์ตเมนต์รวม ที่มีหลายห้อง:

• ห้องของคุณ คุณมีกุญแจเข้าได้คนเดียว
• ห้องส่วนกลาง (เช่นห้องซักผ้า) คนในตึกเข้าได้หมด
• ห้องเครื่องไฟฟ้า มีแต่ช่าง (root) เท่านั้นที่เข้าได้

ระบบสิทธิ์ของ Linux ก็ทำงานแบบเดียวกัน — กำหนดว่า “ใครถือกุญแจห้องไหน”

🎯 เรื่องนี้ออกสอบแน่นอน

Permissions เป็นหัวข้อหลักของ RHCSA — มักมีโจทย์ให้ตั้งสิทธิ์ไฟล์ตามเลขที่กำหนด, สร้าง shared directory ให้กลุ่ม, หรือให้สิทธิ์รายคนด้วย ACL ทำให้ครบและถูกต้องคือคะแนนเต็มของข้อนั้น

2อ่าน ls -l ให้เป็น

เครื่องมือพื้นฐานที่สุดในการดูสิทธิ์คือ ls -l ที่เราเคยเจอในบท M1 — คราวนี้เราจะมาแกะบรรทัดนั้นทีละส่วน เพราะมันคือหัวใจของทั้งบท

🖥️ ผลลัพธ์ของ ls -l 1 บรรทัด
[student@server1 ~]$ ls -l report.sh
-rwxr-xr--. 1 student finance  248 Jun 16 10:30 report.sh

หน้าตาดูยุ่ง แต่ทุกส่วนมีความหมายชัดเจน เรามาแยกทีละช่อง:

-rwxr-xr--ส่วนนี้คือ สิทธิ์ (เดี๋ยวเจาะรายละเอียดด้านล่าง)
1จำนวนลิงก์ — ยังไม่ต้องสนใจในตอนนี้
studentเจ้าของไฟล์ (user owner)
financeกลุ่มเจ้าของ (group owner)
248ขนาดไฟล์ (ไบต์)
Jun 16 10:30วันเวลาที่แก้ล่าสุด
report.shชื่อไฟล์

แกะช่องสิทธิ์ -rwxr-xr-- ทีละตัว

ช่องสิทธิ์มี 10 ตัวอักษร แบ่งเป็น 1 + 3 + 3 + 3 แบบนี้:

🔍 แยกช่องสิทธิ์ 10 ตัว
- rwx r-x r--
│  │   │   │
│  │   │   └─ others  : คนอื่นที่เหลือทั้งหมด
│  │   └───── group   : คนในกลุ่มเจ้าของ (finance)
│  └───────── user    : เจ้าของไฟล์ (student)
└──────────── ชนิดไฟล์

ตัวแรกสุดบอก ชนิดของสิ่งนั้น:

-ไฟล์ธรรมดา (regular file)
dโฟลเดอร์ (directory)
lลิงก์ (symbolic link — ทางลัดไปยังไฟล์อื่น)
📌 สรุปสั้นๆ ก่อนไปต่อ

จากตัวอย่าง -rwxr-xr-- อ่านได้ว่า: เป็นไฟล์ธรรมดา → เจ้าของ (student) ทำได้ทั้ง rwx → คนในกลุ่ม (finance) ทำได้ r-x → คนอื่นทำได้แค่ r-- (อ่านอย่างเดียว) ขีด - ตรงไหน แปลว่า “ไม่มีสิทธิ์นั้น”

3ความหมายของ r w x

สิทธิ์มี 3 ชนิด แต่ละชนิดมีค่าตัวเลขประจำตัว (จำเลขนี้ไว้ เดี๋ยวใช้ในข้อ 6):

ตัวชื่อค่าความหมาย
rread4อ่านได้
wwrite2แก้ไข / เขียนทับได้
xexecute1รันได้ (ไฟล์) / เข้าได้ (โฟลเดอร์)
⚠️ จุดที่สับสนที่สุด: x บนไฟล์ ≠ x บนโฟลเดอร์

ไฟล์: x = “รันโปรแกรม/สคริปต์นี้ได้” (ถ้าไม่มี x ก็เปิดดูได้แต่สั่งทำงานไม่ได้)

โฟลเดอร์: x = “เข้าไปในโฟลเดอร์ได้” (เช่น cd เข้าไป หรือเข้าถึงไฟล์ข้างใน) — ฟังดูแปลก แต่จำง่ายๆ ว่าโฟลเดอร์ที่ไม่มี x เหมือนห้องที่ล็อกประตู ต่อให้รู้ว่ามีอะไรข้างในก็เดินเข้าไม่ได้

💡 เปรียบเทียบ r w x บนโฟลเดอร์

นึกถึงโฟลเดอร์เป็น ตู้เก็บเอกสาร:

r = อ่านป้ายรายชื่อแฟ้มที่ติดหน้าตู้ (เห็นว่ามีไฟล์อะไรบ้าง)
w = เพิ่ม/ลบแฟ้มในตู้ได้ (สร้างหรือลบไฟล์ในโฟลเดอร์)
x = เปิดตู้แล้วหยิบแฟ้มข้างในมาอ่านได้จริง

โดยทั่วไปโฟลเดอร์จึงต้องมี x ถึงจะใช้งานได้ — ลำพัง r อย่างเดียวเห็นแต่ชื่อ แต่หยิบของไม่ได้

4ใครเป็นใคร: u / g / o / a

สิทธิ์ 3 ชุด (rwx / rwx / rwx) แต่ละชุดเป็นของ “กลุ่มคน” คนละกลุ่ม Linux เรียกย่อๆ ว่า:

ตัวย่อคือหมายถึง
uuserเจ้าของไฟล์ (คนเดียว)
ggroupคนในกลุ่มเจ้าของ
oothersคนอื่นที่เหลือทั้งหมด
aallทุกคน (u + g + o รวมกัน)
💡 เปรียบเทียบให้เห็นภาพ

นึกถึง บ้านหลังหนึ่ง:

user (u) = เจ้าของบ้าน ทำอะไรกับบ้านก็ได้
group (g) = คนในครอบครัว มีกุญแจเข้าออกได้ แต่อาจไม่ให้ไปยุ่งบางห้อง
others (o) = คนนอก/แขกที่ผ่านมา ให้สิทธิ์น้อยที่สุด

เวลาตั้งสิทธิ์ เราจึงคิดเป็น 3 ชั้นนี้เสมอ: เจ้าของได้มากสุด คนนอกได้น้อยสุด

💡 Linux เช็คสิทธิ์จากบนลงล่าง

ถ้าคุณเป็น “เจ้าของ” ไฟล์ Linux จะใช้สิทธิ์ช่อง u เท่านั้น (ไม่ตกไปดู g หรือ o) ถ้าไม่ใช่เจ้าของแต่อยู่ในกลุ่ม จะใช้ช่อง g — ที่เหลือถึงจะตกไปที่ o เพราะฉะนั้นการเป็นเจ้าของไฟล์ที่ตั้ง o ไว้กว้าง ก็ไม่ได้ทำให้เจ้าของได้สิทธิ์เพิ่ม

5chmod แบบสัญลักษณ์

คำสั่งที่ใช้เปลี่ยนสิทธิ์ชื่อ chmod (ย่อจาก “change mode”) — แบบแรกที่อ่านง่ายสำหรับมือใหม่คือ แบบสัญลักษณ์ ใช้สูตรง่ายๆ:

🧩 สูตร: [ใคร][+/-/=][สิทธิ์]
u g o a   +  -  =   r w x
└─ใคร─┘  └เพิ่ม/ลบ/ตั้ง┘ └สิทธิ์┘
+เพิ่ม สิทธิ์ (ของเดิมยังอยู่)
-เอาออก สิทธิ์
=ตั้งใหม่ทั้งหมด (ลบของเดิมที่ไม่ได้ระบุทิ้ง)
⌨️ ลองดู
[student@server1 ~]$ chmod u+x report.sh
# เพิ่มสิทธิ์รัน (x) ให้เจ้าของ

[student@server1 ~]$ chmod go-w report.sh
# เอาสิทธิ์เขียน (w) ออกจากทั้ง group และ others

[student@server1 ~]$ chmod a+r report.sh
# ให้ทุกคน (all) อ่านได้

[student@server1 ~]$ chmod u=rw,go=r report.sh
# ตั้งใหม่: เจ้าของ rw / กลุ่มและคนอื่น r อย่างเดียว

สังเกตว่ารวมหลายคนได้ในครั้งเดียว เช่น go-w = group และ others พร้อมกัน และคั่นหลายกฎด้วย จุลภาค ได้ เช่น u=rw,go=r

💡 เมื่อไหร่ใช้แบบสัญลักษณ์

เหมาะตอนอยาก “แตะแค่บางสิทธิ์” โดยไม่ยุ่งกับอันอื่น เช่นแค่เพิ่ม x ให้สคริปต์รันได้ — ใช้ chmod +x ไฟล์ ได้เลย (ไม่ระบุ u/g/o = หมายถึงทุกคนตามค่า umask)

6chmod แบบตัวเลข (octal)

แบบที่สองคือ ตัวเลข — เป็นแบบที่ใช้บ่อยที่สุดในงานจริงและในห้องสอบ เพราะตั้งสิทธิ์ทั้ง 3 ชุดได้ในตัวเลข 3 หลักเดียว

หลักการคือเอาค่าของ r=4, w=2, x=1 มา บวกกัน ในแต่ละชุด:

➕ การบวกเลขในแต่ละชุด
rwx = 4+2+1 = 7
rw- = 4+2+0 = 6
r-x = 4+0+1 = 5
r-- = 4+0+0 = 4
--- = 0+0+0 = 0

ทำทีละชุด (u, g, o) แล้วเขียนเรียงกัน 3 หลัก เช่น rwxr-xr-- = 7, 5, 4 = 754

ค่ายอดฮิตที่ควรจำขึ้นใจ:

เลขrwxความหมาย / ใช้กับ
755rwxr-xr-xเจ้าของทำได้หมด คนอื่นอ่าน+เข้าได้ — ใช้กับโฟลเดอร์และสคริปต์ทั่วไป
644rw-r--r--เจ้าของแก้ได้ คนอื่นอ่านอย่างเดียว — ใช้กับไฟล์ข้อมูล/ไฟล์ตั้งค่าทั่วไป
700rwx------เจ้าของเท่านั้นเข้าถึงได้ คนอื่นห้ามแตะ — ใช้กับโฟลเดอร์ส่วนตัว
600rw-------เจ้าของอ่าน/เขียน คนอื่นห้ามแตะ — ใช้กับไฟล์ลับ เช่น key ส่วนตัว
⌨️ ลองดู
[student@server1 ~]$ chmod 644 notes.txt
[student@server1 ~]$ ls -l notes.txt
-rw-r--r--. 1 student student 128 Jun 16 10:40 notes.txt

[student@server1 ~]$ chmod 700 secret/
[student@server1 ~]$ ls -ld secret/
drwx------. 2 student student 6 Jun 16 10:41 secret

ls -ld (มี d) ใช้ดูสิทธิ์ของ ตัวโฟลเดอร์เอง ไม่ใช่ของข้างใน — จำคู่นี้ไว้ใช้ตรวจงานบ่อยมาก

📌 ทริคจำเร็วในห้องสอบ

โฟลเดอร์มักได้ 755 หรือ 750 (ต้องมี x ถึงเข้าได้), ไฟล์ข้อมูลมักได้ 644 หรือ 640 ถ้าโจทย์ให้เลขมาตรงๆ แค่ chmod เลขนั้น ไฟล์ ก็จบ — ไม่ต้องคิดมาก

7เปลี่ยนเจ้าของ: chown / chgrp

สิทธิ์ rwx ตอบว่า “ทำอะไรได้” — แต่ก่อนหน้านั้นต้องตอบให้ได้ก่อนว่า “ใครเป็นเจ้าของ” ใช้คำสั่ง chown (change owner) และ chgrp (change group)

⌨️ ลองดู
[root@server1 ~]# chown alice report.sh
# เปลี่ยนเจ้าของไฟล์เป็น alice

[root@server1 ~]# chown alice:finance report.sh
# เปลี่ยนทั้งเจ้าของ (alice) และกลุ่ม (finance) พร้อมกัน

[root@server1 ~]# chgrp finance report.sh
# เปลี่ยนแค่กลุ่มเป็น finance

[root@server1 ~]# chown -R alice:finance /data/project
# เปลี่ยนทั้งโฟลเดอร์และทุกอย่างข้างใน (-R = recursive)
chown userเปลี่ยนเจ้าของ
chown user:groupเปลี่ยนเจ้าของและกลุ่มในครั้งเดียว (คั่นด้วย :)
chgrp groupเปลี่ยนแค่กลุ่ม
-Rทำกับทุกไฟล์/โฟลเดอร์ย่อยข้างใน (recursive)
⚠️ chown ต้องเป็น root

การ “ยกไฟล์ให้คนอื่นเป็นเจ้าของ” ทำได้เฉพาะ root เท่านั้น (สังเกตว่าตัวอย่างด้านบนใช้ prompt #) user ธรรมดายกไฟล์ของตัวเองให้คนอื่นไม่ได้ — ถ้าลองจะเจอ Operation not permitted

💡 เปรียบเทียบ

chmod = เปลี่ยน “กฎว่าใครทำอะไรได้” กับบ้านหลังนี้ ส่วน chown = เปลี่ยน “โฉนดที่ดิน” ว่าใครเป็นเจ้าของบ้าน — คนละเรื่องกัน แต่ทำงานด้วยกัน

8umask — สิทธิ์เริ่มต้นของไฟล์ใหม่

เคยสงสัยไหมว่าเวลาสร้างไฟล์ใหม่ ทำไมมันได้สิทธิ์ 644 มาเองโดยไม่ได้ตั้ง? คำตอบคือมี “ตัวหัก” ชื่อ umask คอยทำงานอยู่เบื้องหลัง

💡 เปรียบเทียบ umask

นึกว่า Linux อยากแจกสิทธิ์เต็ม (ไฟล์เริ่มที่ 666, โฟลเดอร์ 777) แต่ umask เป็นเหมือน “ภาษีที่หักออก” ก่อนถึงมือคุณจริง — umask ค่า 022 หมายถึงหักสิทธิ์ w ออกจาก group และ others

🧮 umask 022 คำนวณยังไง
ไฟล์ใหม่:    666 - 022 = 644  (rw-r--r--)
โฟลเดอร์ใหม่: 777 - 022 = 755  (rwxr-xr-x)

นี่คือสาเหตุที่ไฟล์ใหม่มักได้ 644 และโฟลเดอร์ใหม่ได้ 755 โดยอัตโนมัติ

⌨️ ดูและตั้งค่า umask
[student@server1 ~]$ umask
0022

[student@server1 ~]$ umask 027
# ตั้งใหม่: ไฟล์ใหม่จะได้ 640, โฟลเดอร์ 750 (เข้มงวดขึ้น)

พิมพ์ umask เฉยๆ = ดูค่าปัจจุบัน, ตามด้วยตัวเลข = ตั้งใหม่ ไฟล์ที่สร้าง “หลังจากนี้” จะใช้ค่าใหม่ (ไม่ย้อนไปแก้ไฟล์เก่า)

💡 ไม่ต้องท่อง แค่เข้าใจหลัก

จำว่า umask “หักสิทธิ์ออก” ไม่ใช่ “ให้สิทธิ์” — ค่า umask ยิ่งมาก สิทธิ์ที่เหลือยิ่งน้อย (เข้มงวดขึ้น) ค่ามาตรฐานบน RHEL คือ 022 สำหรับ user ทั่วไป

9สิทธิ์พิเศษ: SUID / SGID / Sticky

นอกจาก rwx ปกติ ยังมีสิทธิ์พิเศษอีก 3 ตัวที่ ออกสอบบ่อยมาก โดยเฉพาะ SGID บนโฟลเดอร์ — มันคือเลขหลักที่ 4 ที่เติมไว้ “หน้า” เลขสิทธิ์ปกติ

สิทธิ์เลขนำหน้าทำอะไร
SUID4รันไฟล์โดยใช้สิทธิ์ของเจ้าของไฟล์ (ไม่ใช่สิทธิ์คนที่รัน)
SGID2บนโฟลเดอร์: ไฟล์ใหม่ที่สร้างข้างใน สืบกลุ่มเดียวกับโฟลเดอร์
Sticky1บนโฟลเดอร์: ลบไฟล์ได้เฉพาะเจ้าของไฟล์นั้นเอง

⭐ SGID บนโฟลเดอร์ — สำคัญสุดสำหรับโจทย์ shared directory

นี่คือพระเอกของหัวข้อนี้ โจทย์คลาสสิกของ RHCSA คือ “สร้างโฟลเดอร์ที่ทีมใช้ร่วมกัน ไฟล์ที่ใครสร้างก็ต้องเป็นของกลุ่มเดียวกันเสมอ” — คำตอบคือ SGID

💡 ทำไม SGID directory ถึงจำเป็น

ปกติเวลาคุณสร้างไฟล์ ไฟล์จะได้ กลุ่มหลักของคุณเอง ติดไป ถ้าทีมการเงิน 3 คนสร้างไฟล์ในโฟลเดอร์ส่วนกลาง ไฟล์ก็จะมี 3 กลุ่มต่างกัน คนอื่นในทีมอาจเปิดของกันไม่ได้

SGID บนโฟลเดอร์แก้ปัญหานี้ — ไม่ว่าใครสร้างไฟล์ในนั้น ไฟล์ จะได้กลุ่มเดียวกับโฟลเดอร์เสมอ ทุกคนในทีมจึงเข้าถึงกันได้

⌨️ สร้าง shared directory ด้วย SGID (โจทย์สอบยอดฮิต)
[root@server1 ~]# mkdir /shared
[root@server1 ~]# chgrp finance /shared
[root@server1 ~]# chmod 2770 /shared
[root@server1 ~]# ls -ld /shared
drwxrws---. 2 root finance 6 Jun 16 11:00 /shared
chmod 2770เลข 2 นำหน้า = SGID, ตามด้วย 770 (เจ้าของและกลุ่มทำได้หมด คนอื่นห้ามแตะ)
rwsสังเกต s ในช่อง group (แทนที่ x) = SGID ติดแล้ว

Sticky bit บน /tmp — ป้องกันลบไฟล์ของคนอื่น

โฟลเดอร์ /tmp ทุกคนเขียนได้ ถ้าไม่มีอะไรกั้น ใครก็ลบไฟล์ของคนอื่นได้ — sticky bit แก้ตรงนี้: เขียนได้ทุกคน แต่ลบได้เฉพาะเจ้าของไฟล์

⌨️ ตั้ง sticky bit และอ่าน t ใน ls -l
[root@server1 ~]# chmod +t /shared/upload
[root@server1 ~]# ls -ld /tmp
drwxrwxrwt. 10 root root 4096 Jun 16 11:05 /tmp

สังเกต t ตัวท้ายสุด (ช่อง others แทนที่ x) = sticky bit ติดอยู่ นี่คือเหตุผลที่ /tmp บน RHEL ปลอดภัยทั้งที่ทุกคนเขียนได้

📌 วิธีอ่าน s / t ใน ls -l ให้แม่น

s ในช่อง user (เช่น rwsr-xr-x) = SUID
s ในช่อง group (เช่น rwxrws---) = SGID
t ในช่อง others (เช่น rwxrwxrwt) = Sticky
ถ้าเห็นเป็นตัวพิมพ์ใหญ่ S หรือ T แปลว่าตั้งสิทธิ์พิเศษไว้แต่ ลืมใส่ x ในช่องนั้น (มักเป็นความผิดพลาด)

ตั้งสิทธิ์พิเศษแบบสัญลักษณ์ก็ได้: chmod u+s (SUID), chmod g+s (SGID), chmod +t (sticky)

10ACL — ให้สิทธิ์รายคน

ระบบ rwx ปกติมีข้อจำกัด: กำหนดได้แค่ 3 กลุ่ม (เจ้าของ/กลุ่ม/คนอื่น) — แต่ถ้าอยากให้ นาย A คนเดียว เข้าถึงไฟล์ได้ ทั้งที่เขาไม่ใช่เจ้าของและไม่ได้อยู่ในกลุ่มล่ะ? คำตอบคือ ACL (Access Control List)

💡 เปรียบเทียบ ACL

สิทธิ์ปกติเหมือน “กฎรวมของตึก” (เจ้าของห้อง / คนในตึก / คนนอก) ส่วน ACL เหมือน “รายชื่อแขก VIP” ที่ติดเพิ่มไว้หน้าประตู — ระบุชื่อเฉพาะคนได้ว่าใครเข้าได้บ้าง นอกเหนือจากกฎรวม

⌨️ ดูและตั้ง ACL
[root@server1 ~]# getfacl report.sh
# user::rw-
# group::r--
# other::r--

[root@server1 ~]# setfacl -m u:alice:rwx report.sh
# เพิ่มสิทธิ์ให้ user ชื่อ alice แบบ rwx เฉพาะตัว

[root@server1 ~]# setfacl -m g:finance:rx report.sh
# เพิ่มสิทธิ์ให้ group ชื่อ finance แบบ r-x

[root@server1 ~]# setfacl -x u:alice report.sh
# ลบ ACL ของ alice ออก (-x = remove)
getfaclดู ACL ทั้งหมดของไฟล์
setfacl -m-m = modify (เพิ่ม/แก้) รูปแบบ u:ชื่อ:สิทธิ์ หรือ g:ชื่อ:สิทธิ์
setfacl -x-x = remove เอา entry ของคนนั้นออก (ไม่ต้องใส่สิทธิ์)

Default ACL — ให้ไฟล์ใหม่สืบสิทธิ์อัตโนมัติ

ถ้าอยากให้ทุกไฟล์ที่สร้างใน “โฟลเดอร์” ได้ ACL ตามที่เราตั้งไว้โดยอัตโนมัติ ให้เติม d: (default) นำหน้า

⌨️ Default ACL บนโฟลเดอร์
[root@server1 ~]# setfacl -m d:u:alice:rwx /shared
# ต่อไปไฟล์ใหม่ใน /shared จะให้ alice มี rwx เองอัตโนมัติ

d:u:alice:rwx = default ACL สำหรับ user alice — ใช้ได้เฉพาะกับโฟลเดอร์ และมีผลกับของที่สร้าง “หลังจากนี้” เท่านั้น

📌 สังเกตเครื่องหมาย + ท้าย ls -l

ไฟล์ที่มี ACL เพิ่มเติม จะมี เครื่องหมาย + ต่อท้ายช่องสิทธิ์ใน ls -l แบบนี้:

-rw-r--r--+ 1 student finance 248 Jun 16 report.sh

เห็น + เมื่อไหร่ ให้รู้ทันทีว่า “ไฟล์นี้มี ACL ซ่อนอยู่” ต้องใช้ getfacl ดูถึงจะเห็นครบ — ข้อนี้สำคัญตอนตรวจงานในห้องสอบ

11ข้อผิดพลาดที่เจอบ่อย

12สรุปบทนี้ (Cheat Sheet)

ตารางเลข octal

เลขrwxเหมาะกับ
7rwxทำได้ทุกอย่าง
6rw-อ่าน+เขียน (ไฟล์)
5r-xอ่าน+รัน/เข้า (โฟลเดอร์)
4r--อ่านอย่างเดียว
0---ห้ามแตะ
755rwxr-xr-xโฟลเดอร์/สคริปต์ทั่วไป
644rw-r--r--ไฟล์ข้อมูลทั่วไป
600rw-------ไฟล์ลับเฉพาะเจ้าของ
2770rwxrws---shared directory (SGID)

คำสั่งบทนี้

คำสั่งทำอะไร
ls -lดูสิทธิ์/เจ้าของของไฟล์
ls -ld โฟลเดอร์ดูสิทธิ์ของตัวโฟลเดอร์เอง
chmod u+x ไฟล์เพิ่มสิทธิ์ (แบบสัญลักษณ์)
chmod go-w ไฟล์เอาสิทธิ์เขียนออกจาก group+others
chmod 644 ไฟล์ตั้งสิทธิ์แบบตัวเลข
chown user ไฟล์เปลี่ยนเจ้าของ
chown user:group ไฟล์เปลี่ยนเจ้าของ+กลุ่ม
chgrp group ไฟล์เปลี่ยนกลุ่ม
chown -R u:g โฟลเดอร์เปลี่ยนทั้งโฟลเดอร์
umaskดูสิทธิ์เริ่มต้นของไฟล์ใหม่
chmod 2770 โฟลเดอร์ตั้ง SGID (shared directory)
chmod +t โฟลเดอร์ตั้ง sticky bit
getfacl ไฟล์ดู ACL
setfacl -m u:user:rwx ไฟล์เพิ่ม ACL ให้ user รายคน
setfacl -x u:user ไฟล์ลบ ACL ของคนนั้น
setfacl -m d:u:user:rwx ไฟล์ตั้ง default ACL บนโฟลเดอร์
✅ จบบทนี้คุณควรทำได้

อ่านบรรทัด ls -l ออกทุกช่อง → แปลง rwx ↔ เลข octal ได้ในหัว → ตั้งสิทธิ์ด้วย chmod ทั้งสองแบบ → เปลี่ยนเจ้าของด้วย chown/chgrp → สร้าง shared directory ด้วย SGID (chmod 2770) → และให้สิทธิ์รายคนด้วย ACL ได้ ครบนี้คือหัวข้อ Permissions ของ RHCSA ทั้งหมด!