Đến bữa tiệc muộn một chút, nhưng trong trường hợp độc giả tương lai vấp phải điều này;) Như đã nói bởi những người khác, trên hệ thống tệp OS-X tiêu chuẩn, setUID cho các thư mục bị bỏ qua - và dường như không có cách nào dễ dàng để giải quyết vấn đề này ( mount -o
.... hoặc những gì không). Như thường lệ, trang man thực sự không tuân thủ hành vi OS-X mà nó nói theo nghĩa đen:
4000 (bit thực thi ID người dùng tập hợp) [...] Các thư mục với tập bit-set-user-id sẽ buộc tất cả các tệp và thư mục con được tạo trong chúng phải thuộc sở hữu của chủ sở hữu thư mục chứ không phải bởi chủ sở hữu thư mục uid của quá trình tạo [...]
nhưng nó cũng liệt kê một khả năng để đạt được hiệu quả tương tự mà không từ bỏ quyền sở hữu ban đầu. Linux sử dụng '[g /] setfacls' cho các hiệu ứng tương tự (các quyền này không thực sự hiển thị ngay từ cái nhìn đầu tiên, do đó đôi khi có thể gây phiền toái).
Về phần 'làm thế nào tôi có thể đạt được các hiệu ứng tương tự', hãy đọc toàn bộ trang man và mân mê với:
chmod +a 'guest allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' ./[DIRECTORY]
bạn có thể kiểm tra thông qua
ls -le
nếu tất cả đều ổn Các tùy chọn khác bao gồm chèn quy tắc tại các vị trí cụ thể, loại bỏ hoặc thay thế quy tắc cụ thể. Hai tùy chọn đáng chú ý ở đây là " file_inherit
và directory_inherit
" cho phép các quy tắc được đính kèm vào một thư mục / tệp mới.
Tôi không thực sự thích sử dụng setUID, nhưng setGID rất tiện dụng trên các trình lưu trữ tệp, nơi chỉ đơn giản là đặt nhóm 'chính' không hoạt động hoặc khách hàng có các tệp filem không cho phép ghi nhóm. Điều đó sẽ được giải quyết bằng cách:
chmod +a 'mygroup allow read,write,delete,add_file,add_subdirectory,file_inherit,directory_inherit' /fileserver/groupfolders/mygroup