บนเครื่อง Linux หนึ่งเครื่องมีคนใช้หลายคน — ระบบสิทธิ์ (permissions) คือกำแพงที่กันไม่ให้คนหนึ่งไปแอบดูหรือแก้ของอีกคน บทนี้จะสอนตั้งแต่ “อ่านบรรทัด ls -l ให้เป็น” ไปจนถึงสิทธิ์พิเศษและ ACL ที่ออกสอบแน่ๆ
ถ้าคุณใช้คอมพิวเตอร์ส่วนตัวที่บ้านคนเดียว คุณอาจไม่เคยรู้สึกว่า “สิทธิ์ไฟล์” สำคัญตรงไหน — แต่ Linux ถูกออกแบบมาตั้งแต่แรกให้ หลายคนใช้เครื่องเดียวกันพร้อมกัน ลองนึกถึงเซิร์ฟเวอร์ของบริษัทที่มีพนักงาน 50 คนล็อกอินเข้ามาทำงาน
ถ้าไม่มีระบบกั้น ใครก็จะอ่านเงินเดือนของคนอื่น แก้ไฟล์ตั้งค่าของระบบ หรือลบงานของเพื่อนทิ้งได้ตามใจ — ระบบสิทธิ์คือ กุญแจ ที่บอกว่า “ไฟล์นี้ ใครเปิดดูได้ ใครแก้ได้ ใครรันได้”
นึกถึง อพาร์ตเมนต์รวม ที่มีหลายห้อง:
• ห้องของคุณ คุณมีกุญแจเข้าได้คนเดียว
• ห้องส่วนกลาง (เช่นห้องซักผ้า) คนในตึกเข้าได้หมด
• ห้องเครื่องไฟฟ้า มีแต่ช่าง (root) เท่านั้นที่เข้าได้
ระบบสิทธิ์ของ Linux ก็ทำงานแบบเดียวกัน — กำหนดว่า “ใครถือกุญแจห้องไหน”
Permissions เป็นหัวข้อหลักของ RHCSA — มักมีโจทย์ให้ตั้งสิทธิ์ไฟล์ตามเลขที่กำหนด, สร้าง shared directory ให้กลุ่ม, หรือให้สิทธิ์รายคนด้วย ACL ทำให้ครบและถูกต้องคือคะแนนเต็มของข้อนั้น
ls -l ให้เป็นเครื่องมือพื้นฐานที่สุดในการดูสิทธิ์คือ ls -l ที่เราเคยเจอในบท M1 — คราวนี้เราจะมาแกะบรรทัดนั้นทีละส่วน เพราะมันคือหัวใจของทั้งบท
[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 แบบนี้:
- 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 ชนิด แต่ละชนิดมีค่าตัวเลขประจำตัว (จำเลขนี้ไว้ เดี๋ยวใช้ในข้อ 6):
| ตัว | ชื่อ | ค่า | ความหมาย |
|---|---|---|---|
r | read | 4 | อ่านได้ |
w | write | 2 | แก้ไข / เขียนทับได้ |
x | execute | 1 | รันได้ (ไฟล์) / เข้าได้ (โฟลเดอร์) |
ไฟล์: x = “รันโปรแกรม/สคริปต์นี้ได้” (ถ้าไม่มี x ก็เปิดดูได้แต่สั่งทำงานไม่ได้)
โฟลเดอร์: x = “เข้าไปในโฟลเดอร์ได้” (เช่น cd เข้าไป หรือเข้าถึงไฟล์ข้างใน) — ฟังดูแปลก แต่จำง่ายๆ ว่าโฟลเดอร์ที่ไม่มี x เหมือนห้องที่ล็อกประตู ต่อให้รู้ว่ามีอะไรข้างในก็เดินเข้าไม่ได้
นึกถึงโฟลเดอร์เป็น ตู้เก็บเอกสาร:
• r = อ่านป้ายรายชื่อแฟ้มที่ติดหน้าตู้ (เห็นว่ามีไฟล์อะไรบ้าง)
• w = เพิ่ม/ลบแฟ้มในตู้ได้ (สร้างหรือลบไฟล์ในโฟลเดอร์)
• x = เปิดตู้แล้วหยิบแฟ้มข้างในมาอ่านได้จริง
โดยทั่วไปโฟลเดอร์จึงต้องมี x ถึงจะใช้งานได้ — ลำพัง r อย่างเดียวเห็นแต่ชื่อ แต่หยิบของไม่ได้
สิทธิ์ 3 ชุด (rwx / rwx / rwx) แต่ละชุดเป็นของ “กลุ่มคน” คนละกลุ่ม Linux เรียกย่อๆ ว่า:
| ตัวย่อ | คือ | หมายถึง |
|---|---|---|
u | user | เจ้าของไฟล์ (คนเดียว) |
g | group | คนในกลุ่มเจ้าของ |
o | others | คนอื่นที่เหลือทั้งหมด |
a | all | ทุกคน (u + g + o รวมกัน) |
นึกถึง บ้านหลังหนึ่ง:
• user (u) = เจ้าของบ้าน ทำอะไรกับบ้านก็ได้
• group (g) = คนในครอบครัว มีกุญแจเข้าออกได้ แต่อาจไม่ให้ไปยุ่งบางห้อง
• others (o) = คนนอก/แขกที่ผ่านมา ให้สิทธิ์น้อยที่สุด
เวลาตั้งสิทธิ์ เราจึงคิดเป็น 3 ชั้นนี้เสมอ: เจ้าของได้มากสุด คนนอกได้น้อยสุด
ถ้าคุณเป็น “เจ้าของ” ไฟล์ Linux จะใช้สิทธิ์ช่อง u เท่านั้น (ไม่ตกไปดู g หรือ o) ถ้าไม่ใช่เจ้าของแต่อยู่ในกลุ่ม จะใช้ช่อง g — ที่เหลือถึงจะตกไปที่ o เพราะฉะนั้นการเป็นเจ้าของไฟล์ที่ตั้ง o ไว้กว้าง ก็ไม่ได้ทำให้เจ้าของได้สิทธิ์เพิ่ม
คำสั่งที่ใช้เปลี่ยนสิทธิ์ชื่อ 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)
แบบที่สองคือ ตัวเลข — เป็นแบบที่ใช้บ่อยที่สุดในงานจริงและในห้องสอบ เพราะตั้งสิทธิ์ทั้ง 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 | ความหมาย / ใช้กับ |
|---|---|---|
755 | rwxr-xr-x | เจ้าของทำได้หมด คนอื่นอ่าน+เข้าได้ — ใช้กับโฟลเดอร์และสคริปต์ทั่วไป |
644 | rw-r--r-- | เจ้าของแก้ได้ คนอื่นอ่านอย่างเดียว — ใช้กับไฟล์ข้อมูล/ไฟล์ตั้งค่าทั่วไป |
700 | rwx------ | เจ้าของเท่านั้นเข้าถึงได้ คนอื่นห้ามแตะ — ใช้กับโฟลเดอร์ส่วนตัว |
600 | rw------- | เจ้าของอ่าน/เขียน คนอื่นห้ามแตะ — ใช้กับไฟล์ลับ เช่น 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 เลขนั้น ไฟล์ ก็จบ — ไม่ต้องคิดมาก
สิทธิ์ 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)การ “ยกไฟล์ให้คนอื่นเป็นเจ้าของ” ทำได้เฉพาะ root เท่านั้น (สังเกตว่าตัวอย่างด้านบนใช้ prompt #) user ธรรมดายกไฟล์ของตัวเองให้คนอื่นไม่ได้ — ถ้าลองจะเจอ Operation not permitted
chmod = เปลี่ยน “กฎว่าใครทำอะไรได้” กับบ้านหลังนี้ ส่วน chown = เปลี่ยน “โฉนดที่ดิน” ว่าใครเป็นเจ้าของบ้าน — คนละเรื่องกัน แต่ทำงานด้วยกัน
เคยสงสัยไหมว่าเวลาสร้างไฟล์ใหม่ ทำไมมันได้สิทธิ์ 644 มาเองโดยไม่ได้ตั้ง? คำตอบคือมี “ตัวหัก” ชื่อ umask คอยทำงานอยู่เบื้องหลัง
นึกว่า Linux อยากแจกสิทธิ์เต็ม (ไฟล์เริ่มที่ 666, โฟลเดอร์ 777) แต่ umask เป็นเหมือน “ภาษีที่หักออก” ก่อนถึงมือคุณจริง — umask ค่า 022 หมายถึงหักสิทธิ์ w ออกจาก group และ others
ไฟล์ใหม่: 666 - 022 = 644 (rw-r--r--) โฟลเดอร์ใหม่: 777 - 022 = 755 (rwxr-xr-x)
นี่คือสาเหตุที่ไฟล์ใหม่มักได้ 644 และโฟลเดอร์ใหม่ได้ 755 โดยอัตโนมัติ
[student@server1 ~]$ umask 0022 [student@server1 ~]$ umask 027 # ตั้งใหม่: ไฟล์ใหม่จะได้ 640, โฟลเดอร์ 750 (เข้มงวดขึ้น)
พิมพ์ umask เฉยๆ = ดูค่าปัจจุบัน, ตามด้วยตัวเลข = ตั้งใหม่ ไฟล์ที่สร้าง “หลังจากนี้” จะใช้ค่าใหม่ (ไม่ย้อนไปแก้ไฟล์เก่า)
จำว่า umask “หักสิทธิ์ออก” ไม่ใช่ “ให้สิทธิ์” — ค่า umask ยิ่งมาก สิทธิ์ที่เหลือยิ่งน้อย (เข้มงวดขึ้น) ค่ามาตรฐานบน RHEL คือ 022 สำหรับ user ทั่วไป
นอกจาก rwx ปกติ ยังมีสิทธิ์พิเศษอีก 3 ตัวที่ ออกสอบบ่อยมาก โดยเฉพาะ SGID บนโฟลเดอร์ — มันคือเลขหลักที่ 4 ที่เติมไว้ “หน้า” เลขสิทธิ์ปกติ
| สิทธิ์ | เลขนำหน้า | ทำอะไร |
|---|---|---|
| SUID | 4 | รันไฟล์โดยใช้สิทธิ์ของเจ้าของไฟล์ (ไม่ใช่สิทธิ์คนที่รัน) |
| SGID | 2 | บนโฟลเดอร์: ไฟล์ใหม่ที่สร้างข้างใน สืบกลุ่มเดียวกับโฟลเดอร์ |
| Sticky | 1 | บนโฟลเดอร์: ลบไฟล์ได้เฉพาะเจ้าของไฟล์นั้นเอง |
นี่คือพระเอกของหัวข้อนี้ โจทย์คลาสสิกของ RHCSA คือ “สร้างโฟลเดอร์ที่ทีมใช้ร่วมกัน ไฟล์ที่ใครสร้างก็ต้องเป็นของกลุ่มเดียวกันเสมอ” — คำตอบคือ SGID
ปกติเวลาคุณสร้างไฟล์ ไฟล์จะได้ กลุ่มหลักของคุณเอง ติดไป ถ้าทีมการเงิน 3 คนสร้างไฟล์ในโฟลเดอร์ส่วนกลาง ไฟล์ก็จะมี 3 กลุ่มต่างกัน คนอื่นในทีมอาจเปิดของกันไม่ได้
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 ติดแล้วโฟลเดอร์ /tmp ทุกคนเขียนได้ ถ้าไม่มีอะไรกั้น ใครก็ลบไฟล์ของคนอื่นได้ — sticky bit แก้ตรงนี้: เขียนได้ทุกคน แต่ลบได้เฉพาะเจ้าของไฟล์
[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 ในช่อง 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)
ระบบ rwx ปกติมีข้อจำกัด: กำหนดได้แค่ 3 กลุ่ม (เจ้าของ/กลุ่ม/คนอื่น) — แต่ถ้าอยากให้ นาย A คนเดียว เข้าถึงไฟล์ได้ ทั้งที่เขาไม่ใช่เจ้าของและไม่ได้อยู่ในกลุ่มล่ะ? คำตอบคือ ACL (Access Control List)
สิทธิ์ปกติเหมือน “กฎรวมของตึก” (เจ้าของห้อง / คนในตึก / คนนอก) ส่วน ACL เหมือน “รายชื่อแขก VIP” ที่ติดเพิ่มไว้หน้าประตู — ระบุชื่อเฉพาะคนได้ว่าใครเข้าได้บ้าง นอกเหนือจากกฎรวม
[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 ของคนนั้นออก (ไม่ต้องใส่สิทธิ์)ถ้าอยากให้ทุกไฟล์ที่สร้างใน “โฟลเดอร์” ได้ ACL ตามที่เราตั้งไว้โดยอัตโนมัติ ให้เติม d: (default) นำหน้า
[root@server1 ~]# setfacl -m d:u:alice:rwx /shared # ต่อไปไฟล์ใหม่ใน /shared จะให้ alice มี rwx เองอัตโนมัติ
d:u:alice:rwx = default ACL สำหรับ user alice — ใช้ได้เฉพาะกับโฟลเดอร์ และมีผลกับของที่สร้าง “หลังจากนี้” เท่านั้น
ไฟล์ที่มี ACL เพิ่มเติม จะมี เครื่องหมาย + ต่อท้ายช่องสิทธิ์ใน ls -l แบบนี้:
-rw-r--r--+ 1 student finance 248 Jun 16 report.sh
เห็น + เมื่อไหร่ ให้รู้ทันทีว่า “ไฟล์นี้มี ACL ซ่อนอยู่” ต้องใช้ getfacl ดูถึงจะเห็นครบ — ข้อนี้สำคัญตอนตรวจงานในห้องสอบ
755 = group อ่าน/เข้าได้แต่เขียนไม่ได้, 775 = group เขียนได้ด้วย โจทย์ shared directory มักต้องการ 770 หรือ 2770 ไม่ใช่ 755 — อ่านโจทย์ให้ดีว่ากลุ่มต้อง “เขียน” ได้หรือไม่chown alice /data เปลี่ยนแค่ตัวโฟลเดอร์ ไฟล์ข้างในยังเป็นของเดิม ต้องใส่ -R ถึงจะเปลี่ยนทั้งหมด — แต่ระวังอย่าใช้ -R มั่วกับ / เด็ดขาดchgrp เองหรือใช้ chgrp -Rchmod 777 เพื่อให้ผ่านๆ ไป = เปิดให้ทุกคนแก้ได้หมด ไม่ปลอดภัยอย่างยิ่ง ในห้องสอบมักโดนหักคะแนน คิดให้ออกว่า “ใครต้องเข้าถึงจริง” แล้วตั้งให้พอดี644 (ไม่มี x) จะ cd เข้าไม่ได้ — โฟลเดอร์เกือบทุกครั้งต้องมี x ให้คนที่ควรเข้าได้rws ไม่ใช่ x ธรรมดา แต่คือ SUID/SGID — เวลาตรวจสิทธิ์พิเศษ ให้มองหา s กับ t ในช่องให้ดี| เลข | rwx | เหมาะกับ |
|---|---|---|
7 | rwx | ทำได้ทุกอย่าง |
6 | rw- | อ่าน+เขียน (ไฟล์) |
5 | r-x | อ่าน+รัน/เข้า (โฟลเดอร์) |
4 | r-- | อ่านอย่างเดียว |
0 | --- | ห้ามแตะ |
755 | rwxr-xr-x | โฟลเดอร์/สคริปต์ทั่วไป |
644 | rw-r--r-- | ไฟล์ข้อมูลทั่วไป |
600 | rw------- | ไฟล์ลับเฉพาะเจ้าของ |
2770 | rwxrws--- | 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 ทั้งหมด!