Sự khác biệt giữa chmod vs ACL


13

Tôi hiểu chmodchownvà làm thế nào sự cho phép bit làm việc, nhưng có một hệ thống cho phép bên trong Linux, ACLvới setfaclgetfacl, vì vậy điều này làm cho tôi tự hỏi.

Sự khác biệt giữa hai hệ thống kiểm soát cấp phép là gì? Họ có can thiệp lẫn nhau không?

Câu trả lời:


7

Một cái không tốt hơn cái kia, chúng chỉ là những phương pháp và cách suy nghĩ khác nhau.

Bạn có thể sử dụng cả hai hệ thống quyền trên cùng một đường dẫn mà không gặp vấn đề gì.

Chúng can thiệp lẫn nhau khi sửa đổi chủ sở hữu, nhóm sở hữu và các quyền khác: khi đặt giá trị hiện tại cho các giá trị này từ setfacl, nó thực sự sẽ đặt quyền posix, không phải là ACL.

Quyền Posix chỉ cho phép chủ sở hữu, sở hữu nhóm và quyền "mọi người" trong khi ACL cho phép nhiều người dùng và nhóm "sở hữu". ACL cũng cho phép thiết lập quyền mặc định cho các tệp mới trong một thư mục.

Bạn có thể thêm quản lý quyền trên đầu trang của cả hai với apparmor hoặc selinux để kiểm soát chặt chẽ hơn.


1
Tôi có đúng không khi cho rằng khi tôi chạy, ls -ltôi sẽ chỉ thấy các quyền posix và các quyền ACL giới hạn tệp sẽ không được hiển thị nữa? Hoặc các quyền posix sẽ được tôn trọng bất kể?
mFeinstein

3
@mFeinstein Phụ thuộc. Trong Linux, ls -lđặt một +phần cuối của các ký tự cấp phép để chỉ ra rằng ACL có mặt. Nếu ACL có mặt thì các quyền cơ bản không nói lên toàn bộ câu chuyện: ACL ghi đè quyền POSIX.
Gilles 'SO- ngừng trở nên xấu xa'

Ôi tuyệt! Điều đó +ít nhất ngăn tôi khỏi mất cảnh giác
mFeinstein

3

Các quyền Unix cổ điển được thiết lập bởi chmod (đọc / ghi / thực thi, người dùng / nhóm / người khác) đã tồn tại lâu hơn nhiều so với ACL. Nếu ACL đã tồn tại từ đầu thì sẽ không có chmod như chúng ta biết. Tuy nhiên, vì chmod đã tồn tại trong một thời gian rất dài, nhiều ứng dụng gọi nó, nhiều định dạng lưu trữ hỗ trợ các quyền cổ điển, v.v. Bạn có thể thể hiện quyền chmod bằng ACL; chúng hoạt động như một điểm khởi đầu cho ACL.

Xem Ưu tiên của chủ sở hữu người dùng và nhóm trong quyền truy cập tệpƯu tiên của ACLS khi người dùng thuộc nhiều nhóm để biết cách xử lý chi tiết hơn về cách thức kiểm soát truy cập hoạt động với sự có mặt của ACL.

Các chmodlệnh cũng kiểm soát một số cờ đó không thực sự cho phép, nhưng thường được gọi là quyền dù sao: setuid, setgidchút nếp . Đây không phải là quyền thực sự vì chúng không ảnh hưởng đến quyền truy cập nào được cấp phép trên tệp, nhưng cách hoạt động nhất định trên tệp sau khi chúng được cấp phép. Không có gì như thế này với ACL.


Vì vậy, để thực sự hiểu được sự cho phép của một tập tin, tôi phải kiểm tra cả ACL và ls -l?
mFeinstein

Có cách nào để xem liệu có bất kỳ quyền cụ thể ACL nào trên một tệp / thư mục không?
mFeinstein

@mFeinstein Xem nếu các quyền được hiển thị bằng lscó thêm +ở cuối hoặc chạy getfacllệnh để hiển thị tất cả các quyền bao gồm cả ACL.
Gilles 'SO- ngừng trở nên xấu xa'

1
Chỉ là getfacl myFile?
mFeinstein

1
Vâng, getfacl trên con đường bạn muốn kiểm tra.
Zulgrib
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.