Cách tạo tập tin ngay cả người dùng root cũng không thể xóa nó


13

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ó?


9
Trong khi câu trả lời của tante sẽ bao gồm câu hỏi của bạn, một câu bình luận meta cho câu hỏi: Sẽ dễ trả lời hơn nhiều nếu bạn thêm lý do vào câu hỏi của mình. Có lẽ có một vấn đề xung quanh vấn đề của bạn không bao gồm việc ngăn chặn xóa (các) tệp?
fschmitt

Câu trả lời:


33

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.


Câu hỏi này được hỏi bởi một người phỏng vấn với tôi. Tôi không biết câu trả lời. Tôi hỏi anh để trả lời. Ông nói nó có thể và tự tìm giải pháp.
Kumar

12
Một ngày nào đó bạn cũng sẽ là một người phỏng vấn và có thể hỏi những câu hỏi vô nghĩa của riêng bạn: "root có thể tạo một tệp lớn đến mức anh ta không thể 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)
msw

5
@msw: Người ta có thể lập luận rằng đó là một trò đùa khủng khiếp ngay cả khi bạn đã quen thuộc với lĩnh vực này.
Matthew Crumley

@matthew crumley: có tội như bị buộc tội :)
msw

@msw: Tôi chỉ nhận thấy rằng bạn thậm chí thừa nhận đó là một trò đùa khập khiễng. Và FWIW, tôi thích (một số) những trò đùa khập khiễng nên tôi thực sự thích nó. Điều này đang trở nên khá xa chủ đề mặc dù :)
Matthew Crumley

34

Đặ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ó một ý nghĩa đằng sau giới hạn danh tiếng cho các bình luận ;-) Chỉ là một xung lực kích thích tư duy nhỏ. không có ngọn lửa dự định ;-)
echox

6
+1 Nhưng điều đó sẽ làm việc.
Richard Holloway

1
Điều này và câu trả lời của @mouviciel là giải pháp đúng duy nhất. Ngay cả @root toàn năng vẫn bị ràng buộc bởi các quy tắc được thiết lập bởi phần cứng.
Lie Ryan

15

Đặt tệp của bạn trên một hệ thống tập tin chỉ đọc. Đây có thể là một FS từ xa trong đó root không còn root, CD-ROM hoặc thiết bị di động có thể được bảo vệ chống ghi, ví dụ: thẻ SD.


2

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ờ.


từ lâu và rất xa Làm thế nào bạn thực sự làm điều đó (lệnh)?
Michael Durrant

1

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.