Các quyền ACL được xử lý như thế nào và chúng được áp dụng theo thứ tự nào cho một hành động người dùng nhất định?


21

CentOS 6.4

Tôi đang cố gắng hiểu rõ hơn cách các quy tắc ACL của hệ thống tập tin được xử lý và theo thứ tự các quy tắc ACL được áp dụng.

Ví dụ: giả sử người dùng bob và joe thuộc về một nhóm được gọi là bán hàng. Chúng ta cũng hãy nói rằng tôi có một tài liệu bán hàng với các chi tiết sau:

[root@Maui ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---

Câu hỏi của tôi là, làm thế nào các quyền được xử lý trong một ví dụ như thế này và các đặc quyền truy cập nào được ưu tiên?

Có phải chỉ có một tìm kiếm từ trên xuống và bất kỳ quy tắc nào phù hợp trước tiên là quy tắc được áp dụng?

Hay Linux thực thi quyền truy cập dựa trên quy tắc cụ thể nhất cho người dùng đang đề cập là gì? Hoặc có lẽ các quy tắc hạn chế và áp dụng nhất được ưu tiên?

Câu trả lời:


15

Đây là một chủ đề rộng và hơi quá nhiều để đề cập ở đây. Tôi sẽ giới thiệu bạn đến Danh sách điều khiển truy cập POSIX trên whitepaper Linux do Andreas Grünbacher của SuSE Labs kết hợp với nhau. Nó thực hiện một công việc khá tốt là bao quát chủ đề và phá vỡ nó để bạn hiểu cách ACL hoạt động.

Ví dụ của bạn

Bây giờ hãy xem ví dụ của bạn và phá vỡ nó.

  • nhóm (bán hàng)
  • thành viên của nhóm bán hàng (bob, joe)

Bây giờ hãy phá vỡ các quyền trên tập tin /home/foo/docs/foo.txt. ACL cũng đóng gói các quyền tương tự mà hầu hết mọi người nên làm quen với Unix, chủ yếu là các bit Người dùng, Nhóm và Các bit khác. Vì vậy, hãy kéo chúng ra trước.

user:: r--
group::r--
other::---

Chúng thường trông như thế này trong một ls -l:

$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt

Bạn có thể xem ai sở hữu tệp và nhóm là gì với các dòng ACL này:

# owner: jane
# group: executives

Vì vậy, bây giờ chúng tôi nhận được vào gritty nitty của ACL:

user:bob:rw-
user:joe:rwx
group:sales:rwx

Điều này cho thấy rằng người dùng bobrw, trong khi người dùng joerwx. Ngoài ra còn có một nhóm cũng rwxtương tự như joe. Các quyền này như thể cột người dùng trong ls -lđầu ra của chúng tôi có 3 chủ sở hữu (jane, bob và joe) cũng như 2 nhóm (giám đốc điều hành & bán hàng). Không có sự phân biệt nào khác ngoài chúng là ACL.

Cuối cùng là maskdòng:

mask::rwx

Trong trường hợp này, chúng tôi không che giấu bất cứ điều gì, nó rộng mở. Vì vậy, nếu người dùng bob và joe có những dòng này:

user:bob:rw-
user:joe:rwx

Sau đó, đó là những quyền hiệu quả của họ. Nếu mặt nạ là như thế này:

mask::r-x

Sau đó, quyền hiệu quả của họ sẽ như thế này:

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

Đây là một cơ chế mạnh mẽ để cắt giảm quyền được cấp theo cách bán buôn.

LƯU Ý: Chủ sở hữu tệp và các quyền khác không bị ảnh hưởng bởi mặt nạ quyền hiệu lực; tất cả các mục khác là! Vì vậy, đối với mặt nạ, các quyền ACL là công dân hạng hai khi so sánh với các quyền Unix truyền thống.

Tài liệu tham khảo

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.