สิทธิ์และความเป็นเจ้าของไฟล์
เรียนรู้ 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 thisumask: มาสก์สิทธิ์เริ่มต้น
ค่า 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สิทธิ์และความเป็นเจ้าของไฟล์
- การจัดการผู้ใช้และกลุ่ม
- การเสริมความปลอดภัย SSH และการยืนยันตัวตนด้วยคีย์
- กฎไฟร์วอลล์ iptables และ UFW