วิธีสร้างไฟล์แม้ผู้ใช้รูทไม่สามารถลบมันได้?
วิธีสร้างไฟล์แม้ผู้ใช้รูทไม่สามารถลบมันได้?
คำตอบ:
คำตอบง่ายๆ: คุณทำไม่ได้รูทสามารถทำทุกอย่างได้
คุณสามารถตั้งค่าแอ็ตทริบิวต์ "i" ด้วย chattr (อย่างน้อยถ้าคุณอยู่ที่ ext {2,3,4}) ซึ่งทำให้ไฟล์ไม่สามารถเปลี่ยนได้ แต่รูทสามารถยกเลิกการตั้งค่าแอ็ตทริบิวต์และลบไฟล์ต่อไปได้
ซับซ้อนมากขึ้น (และวิธีแก้ปัญหาแฮ็ชที่น่าเกลียด): ใส่ไดเรกทอรีที่คุณต้องการเปลี่ยนไม่ได้สำหรับรูทบนเซิร์ฟเวอร์ระยะไกลและติดตั้งผ่าน NFS หรือ SMB หากเซิร์ฟเวอร์ไม่ได้ให้สิทธิ์การเขียนที่ล็อคเอาท์บัญชีรูทเครื่อง แน่นอนว่าบัญชีรูทท้องถิ่นสามารถคัดลอกไฟล์ไปไว้ในเครื่อง, ยกเลิกการต่อเชื่อมจากรีโมตวางสำเนาไว้และเปลี่ยนสิ่งนั้น
คุณไม่สามารถล็อครูทจากการลบไฟล์ของคุณ หากคุณไม่สามารถไว้ใจรูทของคุณเพื่อให้ไฟล์ยังคงอยู่แสดงว่าคุณกำลังประสบปัญหาสังคมไม่ใช่ปัญหาด้านเทคนิค
mv
" (ซึ่งเป็นเรื่องตลกง่อยตามคริสต์ศาสนศาสตร์และเรื่องตลกที่น่ากลัวถ้าคุณไม่คุ้นเคยกับสนาม)
ใส่ไว้ในซีดีรอม! ;)
(นี่ควรเป็นความคิดเห็น แต่ฉันไม่สามารถแสดงความคิดเห็น ... )
วางไฟล์ของคุณในระบบไฟล์แบบอ่านอย่างเดียว นี่อาจเป็น FS ระยะไกลโดยที่รูทไม่ได้เป็นรูตอีกต่อไปซีดีรอมหรืออุปกรณ์พกพาที่สามารถป้องกันการเขียนได้เช่นการ์ด SD
นานมาแล้วฉันเขียนเคอร์เนลแพทช์ (2.2.ancient) ที่พยายามลบไฟล์ชื่อ SELFDESTRUCT ฆ่ากระบวนการเรียก เรื่องนี้ได้รับการปกป้องจากอุบัติเหตุ "rm -rf *"
คุณสามารถใช้chattr +i
เพื่อทำให้ไฟล์ไม่เปลี่ยนรูป
แน่นอนว่าผู้ใช้ที่มีความเข้าใจในการเข้าถึงรูทยังคงสามารถใช้chattr -i
เพื่อลบแอตทริบิวต์ที่ไม่เปลี่ยนรูปแบบแล้วลบไฟล์ แต่พวกเขาสามารถยกเลิกความพยายามอื่น ๆ ในการบล็อกการเข้าถึงที่ปรากฏในที่นี้ได้เช่นกัน
ฉันจะยืนยันว่าchattrเป็นวิธี Unix ที่ถูกต้องในการทำเช่นนี้