Cách ngăn người dùng thay đổi tập tin bằng quyền linux


8

Có thể, bằng cách sử dụng lược đồ cấp phép linux, để cho phép người dùng tạo tệp nhưng không chỉnh sửa hoặc xóa chúng sau này? Ý tôi là, chúng tôi có một thư mục phân phối nơi người dùng đặt các tạo phẩm ở đó và chúng tôi không muốn các tạo phẩm này được sửa đổi sau khi gửi tức là đã chỉnh sửa hoặc xóa.


Câu trả lời:


2

Bạn không thể làm điều đó: nếu người dùng có thể tạo tệp, chúng sẽ thuộc sở hữu của anh ta và anh ta sẽ có thể sửa đổi chúng và xóa chúng.

Tôi sẽ đề xuất một sơ đồ đơn giản để có một thư mục dàn (trong đó người dùng có thể làm những gì anh ta muốn) và một thư mục đến (không thể truy cập được cho người dùng), với một chương trình đặc quyền nhỏ để di chuyển các tệp từ thư mục dàn đến danh mục. Nhưng thực sự rất khó để làm đúng: trong số những điều khác bạn cần lưu ý rằng chương trình đặc quyền sẽ không di chuyển tệp trong các thư mục khác (coi chừng điều kiện chủng tộc, liên kết tượng trưng ../), sẽ không ghi đè lên các tệp hiện có ( rename(3)là nguyên tử nhưng có thể xóa đích), sẽ không cho phép người dùng giữ mô tả tệp mở và sửa đổi tệp sau khi di chuyển (vì vậy bạn sao chép tốt hơn di chuyển). Thay vào đó, tôi khuyên bạn nên thực hiện một giải pháp mạnh mẽ hiện có:

  • Yêu cầu người dùng tải tệp lên qua HTTP.
  • Có người dùng cam kết với một hệ thống kiểm soát phiên bản. Anh ấy cũng sẽ có thể cam kết các phiên bản mới.

1

Có thể, bằng cách sử dụng lược đồ cấp phép linux, để cho phép người dùng tạo tệp nhưng không chỉnh sửa hoặc xóa chúng sau này?

KHÔNG

Nhưng bạn có các tùy chọn khác theo đề xuất của @Fredrik trong phần bình luận cho câu hỏi của bạn. Xem ở đây.


0

Đây là một cách tiếp cận, về mặt lý thuyết, nên làm việc. Đó là quá nhiều nỗ lực cho tôi để phát triển ngay cả một khái niệm bằng chứng; bạn có thể từ chối nó vì lý do tương tự. Và, nói đúng ra, đây không phải là sử dụng chương trình cấp phép của Linux.

  • Nhận một máy chủ tệp nguồn mở.
  • Sửa đổi nó để thực thi các quy tắc bạn muốn (nghĩa là người dùng có thể tạo tệp trong thư mục mà họ có quyền truy cập ghi và có thể ghi vào tệp ngay sau khi tạo, nhưng sau đó, không ai có thể mở tệp để ghi hoặc hủy liên kết nó).
  • Thiết lập một máy chủ lưu trữ chạy phần mềm máy chủ sửa đổi của bạn. Về mặt lý thuyết nó có thể là máy chủ lưu trữ cục bộ của bạn; chỉ cần đảm bảo rằng thư mục mà nó hoạt động không thể truy cập công khai.
  • NFS gắn kết của bạn /mnt/deliveryvà nói với người dùng của bạn để đặt các tập tin của họ ở đó.

0

Câu trả lời đơn giản là chạy tập lệnh theo một khoảng thời gian nhất định mà bạn chọn (cứ sau 15 phút) gán lại quyền sở hữu tất cả các tệp trong thư mục "tải lên" cho người dùng "quản trị viên" được xác định trước và đặt quyền thành "644". Điều này sẽ cho phép tất cả người dùng truy cập chỉ đọc vào tất cả các tệp trong thư mục tải lên, bao gồm cả những người mà họ tự tải lên. Tất nhiên, bạn có thể tối ưu hóa tập lệnh sau lần chạy đầu tiên để chỉ tìm kiếm các tệp có ngày được tạo sau lần chạy trước của tập lệnh (giả sử trong 17 phút cuối).

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.