Tôi đang cố gắng để hiểu hành vi Unix này (mà tôi tình cờ đang thử nghiệm trên Ubuntu 11.10):
$ touch foo
$ setfacl -m u:nobody:rwx foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx
group::rw-
mask::rwx
other::r--
$ chmod g-rw foo
$ getfacl foo
# file: foo
# owner: michael
# group: michael
user::rw-
user:nobody:rwx #effective:--x
group::rw- #effective:---
mask::--x
other::r--
Lưu ý rằng lệnh chmod (1) đã cập nhật mặt nạ ACL. Lý do tại sao điều này xảy ra?
Trang web của SunOS có nội dung như sau:
Nếu bạn sử dụng lệnh chmod (1) để thay đổi quyền của chủ sở hữu nhóm tệp trên một tệp có mục ACL, cả quyền của chủ sở hữu nhóm tệp và mặt nạ ACL đều được thay đổi thành quyền mới. Xin lưu ý rằng các quyền của mặt nạ ACL mới có thể thay đổi các quyền hiệu quả cho những người dùng và nhóm bổ sung có các mục ACL trên tệp.
Tôi hỏi bởi vì nó sẽ thuận tiện cho tôi nếu chmod (1) không có hành vi này. Tôi hy vọng rằng bằng cách hiểu tại sao nó làm những gì nó làm, tôi có thể thiết kế tốt hơn cách tôi thiết lập quyền hệ thống tập tin.