3
ฉันจะทำให้ไฟล์ไม่สามารถแก้ไขได้อย่างไร
ในขณะที่เข้าสู่ระบบฉันสามารถทำสิ่งต่อไปนี้: mkdir foo touch foo/bar chmod 400 foo/bar chmod 500 foo จากนั้นฉันสามารถเปิดเป็นกลุ่ม (ไม่เป็นroot) แก้ไขbarบังคับให้เขียนด้วยw!และไฟล์จะถูกแก้ไข ฉันจะทำให้ระบบปฏิบัติการไม่อนุญาตให้แก้ไขไฟล์ได้อย่างไร? อัพเดท 02 มี.ค. 2560 chmod 500 foo เป็นปลาเฮอริ่งแดง: สิทธิ์ในการเขียนในไดเรกทอรีไม่มีส่วนเกี่ยวข้องกับความสามารถในการปรับเปลี่ยนเนื้อหาของไฟล์ - เฉพาะความสามารถในการสร้างและลบไฟล์ chmod 400 foo/barในความเป็นจริงจะป้องกันเนื้อหาของไฟล์จากการเปลี่ยนแปลง แต่ไม่ได้ป้องกันการอนุญาตของไฟล์จากการเปลี่ยนแปลง - เจ้าของไฟล์สามารถเปลี่ยนแปลงการอนุญาตของไฟล์ได้ตลอดเวลา (สมมติว่าพวกเขาสามารถเข้าถึงไฟล์ได้เช่นเรียกใช้งานการอนุญาตในไดเรกทอรีบรรพบุรุษทั้งหมด) ในความเป็นจริง strace (1) แสดงให้เห็นว่านี่คือสิ่งที่กลุ่ม (7.4.576 Debian Jessie) กำลังทำอยู่ - vim เรียก chmod (2) เพื่อเพิ่มสิทธิ์การเขียนสำหรับเจ้าของไฟล์ชั่วคราวแก้ไขไฟล์แล้วเรียก chmod ( 2) …