0Pricing
Cyber Security Academy · บทเรียน

สิทธิ์และความเป็นเจ้าของไฟล์

เรียนรู้ chmod, chown, sticky bit, SUID/SGID และวิธีที่สิทธิ์ช่วยป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต

สิทธิ์และความเป็นเจ้าของไฟล์ เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดสิทธิ์จึงสำคัญ

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

อธิบายสตริงสิทธิ์

เมื่อเรียกใช้ ls -la ไฟล์แต่ละไฟล์จะแสดงสตริงสิทธิ์ความยาว 10 อักขระ เช่น -rwxr-xr-- โดยแบ่งเป็นประเภทไฟล์ สิทธิ์ของเจ้าของ สิทธิ์ของกลุ่ม และสิทธิ์ของผู้อื่น

$ ls -la /etc/passwd
-rw-r--r-- 1 root root 2847 Jan 10 10:00 /etc/passwd
# -  = regular file
# rw- = owner (root) can read+write
# r-- = group can read only
# r-- = others can read only

สิทธิ์แบบตัวเลข (ฐานแปด)

นอกจากนี้ยังสามารถแสดงสิทธิ์เป็นตัวเลขฐานแปดได้ โดยอ่าน=4 เขียน=2 และเรียกใช้=1 จากนั้นนำค่ามาบวกกันสำหรับแต่ละประเภท

# rwxr-xr-- = 754
# rw-rw-r-- = 664 (world-readable, group-writable)
# rwx------ = 700 (private executable)

การเปลี่ยนสิทธิ์: chmod

ใช้ chmod เพื่อแก้ไขสิทธิ์ คุณสามารถใช้โหมดสัญลักษณ์ (u+x) หรือโหมดฐานแปด (755) ได้

$ chmod 755 script.sh      # rwxr-xr-x
$ chmod u+x script.sh      # add execute for owner
$ chmod o-r secret.txt     # remove read for others
$ chmod 600 id_rsa         # SSH key: owner read/write only

การเปลี่ยนเจ้าของ: chown

คำสั่ง chown ใช้เปลี่ยนเจ้าของและ/หรือกลุ่มของไฟล์ เฉพาะ root เท่านั้นที่สามารถเปลี่ยนเจ้าของให้เป็นผู้ใช้อื่นได้

$ chown user:group file.txt
$ chown root:root /etc/shadow
$ chown -R www-data:www-data /var/www/html/

สิทธิ์พิเศษ: SUID, SGID และบิตยึดติด

SUID (Set User ID) ทำให้ไฟล์ทำงานด้วยสิทธิ์ของเจ้าของ ส่วน SGID ในไดเรกทอรีทำให้ไฟล์ใหม่สืบทอดกลุ่ม และบิตยึดติดจะป้องกันไม่ให้ผู้ที่ไม่ใช่เจ้าของลบไฟล์

$ ls -la /usr/bin/passwd
-rwsr-xr-x 1 root root 68208 /usr/bin/passwd
# The "s" in owner execute position = SUID
# This runs as root regardless of who calls it

การค้นหาไบนารี SUID (การยกระดับสิทธิ์)

ผู้โจมตีจะค้นหาไบนารี SUID เพื่อยกระดับสิทธิ์ ไบนารี SUID ใดก็ตามที่มีช่องโหว่ที่รู้จักหรือถูกนำไปใช้ผิดวัตถุประสงค์ อาจทำให้เข้าถึง root ได้

$ find / -perm -4000 -type f 2>/dev/null
/usr/bin/passwd
/usr/bin/sudo
/usr/bin/pkexec
/bin/mount

ไฟล์ /etc/shadow

/etc/shadow ใช้จัดเก็บรหัสผ่านแบบแฮช และ root เท่านั้นที่อ่านได้ หากคุณอ่านไฟล์นี้ได้ คุณสามารถพยายามถอดรหัสแบบออฟไลน์ด้วย hashcat หรือ john

$ ls -la /etc/shadow
-rw-r----- 1 root shadow 1423 Jan 10 /etc/shadow
# Only root and the shadow group can read this

umask: มาสก์สิทธิ์เริ่มต้น

ค่า umask จะถูกหักออกจาก 666 (ไฟล์) หรือ 777 (ไดเรกทอรี) เพื่อกำหนดสิทธิ์เริ่มต้นของไฟล์ใหม่ ค่า umask 022 หมายความว่าไฟล์ใหม่จะมีสิทธิ์เป็น 644

$ umask
0022
$ touch newfile
$ ls -la newfile
-rw-r--r-- 1 user user 0 newfile  # 666 - 022 = 644

รายการควบคุมการเข้าถึง (ACL)

ACL ช่วยขยายโมเดลสิทธิ์แบบดั้งเดิมของ Unix เพื่อให้กำหนดสิทธิ์เป็นรายผู้ใช้เพิ่มเติมจากสามกลุ่ม ได้แก่ เจ้าของ/กลุ่ม/ผู้อื่น ใช้ getfacl และ setfacl

$ getfacl /var/www/html/
# file: var/www/html/
# owner: root
# group: www-data
user::rwx
group::r-x
other::r-x

ไฟล์ที่แก้ไขไม่ได้: chattr

คำสั่ง chattr +i ทำให้ไฟล์แก้ไขไม่ได้ — แม้แต่ root ก็ไม่สามารถแก้ไขหรือลบไฟล์ได้ รูทคิตใช้คุณสมบัตินี้เพื่อป้องกันไฟล์ของตนเอง ตรวจสอบด้วย lsattr

$ chattr +i /etc/passwd   # make immutable
$ lsattr /etc/passwd
----i--------e-- /etc/passwd
$ chattr -i /etc/passwd   # remove immutability

ตรวจสอบความเข้าใจ

สิทธิ์ SUID อนุญาตให้ทำสิ่งใด

สรุป: สิทธิ์ไฟล์

ทำความเข้าใจ chmod, chown และ SUID ให้เชี่ยวชาญ ในการแข่งขัน CTF และการทดสอบการเจาะระบบจริง การกำหนดค่า SUID ผิดพลาดเป็นหนึ่งในเส้นทางที่พบบ่อยที่สุดสู่ root ควรตรวจสอบสิทธิ์ของไฟล์สำคัญอยู่เสมอ

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

บทเรียน “สิทธิ์และความเป็นเจ้าของไฟล์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “สิทธิ์และความเป็นเจ้าของไฟล์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “สิทธิ์และความเป็นเจ้าของไฟล์”

เรียนรู้ chmod, chown, sticky bit, SUID/SGID และวิธีที่สิทธิ์ช่วยป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “สิทธิ์และความเป็นเจ้าของไฟล์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. สิทธิ์และความเป็นเจ้าของไฟล์
  2. การจัดการผู้ใช้และกลุ่ม
  3. การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์
  4. กฎไฟร์วอลล์ iptables และ UFW
← กลับไปที่ Cyber Security Academy