Có, ACL: s cho phép tự do đặt các quyền khác nhau cho những người dùng hoặc nhóm khác nhau. IIRC các quyền nhóm thông thường giới hạn nhóm quyền mà nhóm và người dùng có thể có thông qua ACL: s (hiển thị như mask
trong getfacl
), nhưng setfacl
sẽ xử lý nếu bạn thêm quyền.
Nhưng trong một số trường hợp, bạn cần hỏi liệu bộ quyền có ý nghĩa gì không.
Tôi có 3 người dùng với các quyền mong muốn này ....
- user1 rwx
- user2 rw_
- user3 r__
Bạn có thể thực hiện điều này với ACL: s hoặc (khoảng) với các quyền Unix thông thường bằng cách biến user1 thành chủ sở hữu của tệp, user2 thành thành viên của nhóm và để người khác, kể cả user3 có quyền truy cập đọc. Mặc dù sau đó mọi người (có quyền truy cập vào thư mục) cũng sẽ có quyền truy cập đọc.
Hãy xem xét ý nghĩa của các quyền đó. Bạn có một người dùng có thể đọc và một người dùng khác có thể đọc và viết. Điều đó hoàn toàn bình thường. Không ai trong số này có quyền truy cập để thực thi tệp, nhưng sau đó người dùng thứ ba được cho là cũng có thể làm điều đó.
Điều đó không có ý nghĩa nhiều trong tâm trí của tôi. Bất kỳ người dùng nào có thể đọc tệp, có thể tạo một bản sao (*), đánh dấu tệp có thể thực thi và chạy nó mà không cần truy cập để thực thi tệp gốc. Tình huống duy nhất có ý nghĩa là có quyền truy cập thực thi đối với một số người dùng nhưng không phải đối với những người khác, là khi thực thi có các đặc quyền nâng cao thông qua suid. Nhưng nếu đó là trường hợp, bạn cũng không nên có quyền truy cập ghi vào tệp.
Theo nghĩa tương tự, user4 với -wx
và user5 --x
không có ý nghĩa với tôi. Truy cập chỉ viết có thể có ý nghĩa nếu có khả năng chỉ cho phép nối thêm , nhưng hệ thống cấp phép không phải là chi tiết tốt.
(* trừ khi họ không thể viết ở bất cứ đâu)
Mặc dù, nếu chúng tôi loại bỏ yêu cầu kỳ lạ đối với x
bit, chúng tôi sẽ để lại một tệp nơi user1 và user2 nên có quyền truy cập ghi và user3 nên có quyền truy cập đọc. Một người viết và nhiều người đọc sẽ dễ dàng với mô hình truyền thống, nhưng trường hợp này sẽ cần các thủ thuật để kết hợp các quyền của tệp với các cho phép của thư mục chứa. May mắn thay, trong nhiều trường hợp, một người dùng có nhiều quyền hơn là đủ.
Không có yêu cầu về bit thực thi, đây giống như một trường hợp sử dụng ACL: s. Nhưng với nó, ví dụ cụ thể này có vẻ khá phức tạp với tôi.