Làm thế nào để tạo một tập tin ngay cả người dùng root không thể xóa nó?
Làm thế nào để tạo một tập tin ngay cả người dùng root không thể xóa nó?
Câu trả lời:
Câu trả lời đơn giản: Bạn không thể, root có thể làm mọi thứ.
Bạn có thể đặt thuộc tính "i" bằng chattr (ít nhất là nếu bạn đang ở trên máy lẻ {2,3,4}) làm cho tệp không thể thay đổi nhưng root chỉ có thể hủy đặt thuộc tính và xóa tệp.
Phức tạp hơn (và cách khắc phục xấu xí): Đặt thư mục bạn muốn không thể thay đổi để root trên máy chủ từ xa và gắn kết nó thông qua NFS hoặc SMB. Nếu máy chủ không cung cấp quyền ghi mà khóa tài khoản root cục bộ. Tất nhiên, tài khoản root cục bộ chỉ có thể sao chép các tập tin cục bộ, ngắt kết nối các công cụ từ xa, đặt bản sao vào vị trí và thay đổi điều đó.
Bạn không thể khóa root khỏi việc xóa các tập tin của bạn. Nếu bạn không thể tin tưởng vào root của mình để giữ các tệp nguyên vẹn, bạn đang gặp vấn đề xã hội chứ không phải vấn đề kỹ thuật.
mv
?" (đó là một trò đùa khập khiễng dựa trên triết lý Kitô giáo, và một trò đùa khủng khiếp nếu bạn không quen thuộc với lĩnh vực này)
Đặt nó vào đĩa CD-rom! ;)
(đây phải là một bình luận nhưng tôi không thể bình luận ...)
Cách đây rất lâu, tôi đã viết một bản vá kernel (tới 2.2.ancient) khi cố gắng xóa một tệp có tên là TỰ TIN đã giết quá trình gọi. Điều này bảo vệ chống lại "rm -rf *" tình cờ.
Bạn có thể sử dụng chattr +i
để làm cho một tập tin bất biến.
Tất nhiên, một người dùng thông thái có quyền truy cập root vẫn có thể sử dụng chattr -i
để xóa thuộc tính bất biến và sau đó xóa tệp, nhưng họ cũng có thể hoàn tác bất kỳ nỗ lực nào khác để chặn truy cập được liệt kê ở đây.
Tôi sẽ lập luận rằng chattr là cách Unix chính xác để làm điều này.