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.