Tiếng Việt

Công cụ dành cho nhà phát triển · Máy tính Chmod

POSIX ACL so với bit chế độ chmod: khi rwx không đủ

· Lý lịch

chmod unix access-control

ACL ranh giới được hiển thị dưới dạng sơ đồ bit quyền Unix riêng biệt
Hình minh họa vector ToolAcre gốc

Các bit chế độ bao gồm một chủ sở hữu, một nhóm và mọi người khác. Bài đăng này giải thích mô hình POSIX.1e ACL lấp đầy khoảng trống, cách nó tương tác với chmod và khi nào một nhóm chia sẻ vẫn là câu trả lời đơn giản hơn.

Nhiều hơn một trình đọc so với mức mà mô hình cho phép - một tệp thuộc về nhóm ứng dụng và một kiểm tra viên bên ngoài nhóm cần đọc nó

Mô hình chế độ thông thường không có khe nhận dạng thứ tư. Nó có thể mô tả các quyền cho một chủ sở hữu, một nhóm và mọi người khác, nhưng không thể chỉ định người kiểm tra bổ sung. Máy tính phản ánh chính xác ranh giới đó: ma trận, hiển thị ký hiệu và tóm tắt của nó hiển thị ba lớp đó cộng với các bit đặc biệt, không phải mục truy cập của mỗi người dùng hoặc mỗi nhóm.

Việc mở rộng lớp khác chỉ để chứa thêm một độc giả sẽ ảnh hưởng đến mọi danh tính thuộc lớp đó. Máy tính có thể hiển thị sự thay đổi số học đó, chẳng hạn như chuyển từ 0640 sang 0644 nhưng không thể quyết định liệu truy cập rộng hơn có được chấp nhận hay không. Quyền truy cập được đặt tên yêu cầu bằng chứng và công cụ bên ngoài tuyến đường này.

Giới hạn của ba lớp — tại sao mô hình truyền thống có chính xác một vị trí cho mỗi lớp cho chủ sở hữu, nhóm và những người khác

Mỗi chữ số bát phân cuối cùng thuộc về một lớp cố định. Chủ sở hữu, nhóm và những người khác nhận cờ đọc, viết và thực thi, tạo ra chín vị trí thông thường. Mô hình không thể chèn bộ ba khác cho một người được đặt tên. Do đó, một chuyển đổi thành công sẽ mô tả chế độ cơ sở một cách trung thực trong khi không nói gì về các mục bổ sung được đính kèm ở nơi khác.

Hạn chế này quan trọng khi đọc đầu ra có vẻ hạn chế. Giá trị biểu tượng của rw-r----- cho bạn biết chủ sở hữu cơ sở, nhóm và các bit khác được đại diện bởi 0640. Nó không chứng minh rằng không có danh tính nào khác có thể đọc đối tượng vì máy tính không kiểm tra dữ liệu ACL cũng như không quan sát bất kỳ lớp thực thi bên ngoài nào.

POSIX.1e ACL - các mục nhập của người dùng và nhóm được đặt tên được thêm vào cùng một tệp, được đặt bằng setfacl và đọc bằng getfacl

Các mục nhập của người dùng được đặt tên và nhóm được đặt tên không được triển khai. Nguồn không chứa trình phân tích cú pháp hoặc trình định dạng cho bản ghi ACL, không có mặt nạ ACL và không có thao tác setfacl hoặc getfacl. Những khái niệm đó có thể thúc đẩy việc sử dụng cơ chế kiểm soát truy cập bên ngoài, nhưng bài viết này không thể chỉ định cú pháp lệnh hoặc hành vi ngoài việc thừa nhận ranh giới rõ ràng của máy tính.

Giữ chế độ cơ bản hiển thị trong khi thực hiện công việc riêng biệt đó. Nhập giá trị bát phân được báo cáo, xác minh chủ sở hữu, nhóm và các bộ ba khác và ghi lại bất kỳ bit đặc biệt nào. Sau đó, sử dụng tài liệu hệ thống tệp có thẩm quyền và các công cụ bên ngoài phù hợp cho các mục được đặt tên. Bản xem trước chmod do máy tính tạo ra không tạo, kiểm tra hoặc lưu giữ ACL.

Các mục nhập được đặt tên là ACL yêu cầu các công cụ bên ngoài chưa được triển khai ở đây

Mối quan hệ giữa thay đổi chmod, bit lớp nhóm và mặt nạ ACL phụ thuộc vào hành vi không được triển khai ở đây. Máy tính chỉ chuyển đổi chế độ 12 bit và đưa ra phép gán hoặc đối số bát phân. Nó không có trạng thái ACL để tính toán các quyền có hiệu lực, vì vậy nó không thể dự đoán liệu một mục nhập được đặt tên có bị giới hạn hay không.

Tránh mô tả hậu quả ACL chỉ từ đầu ra chế độ. Một thay đổi từ 0640 thành 0600 sẽ loại bỏ rõ ràng ba bit lớp nhóm trong mô hình này; bất kỳ điều gì về người dùng được đặt tên, nhóm được đặt tên hoặc mặt nạ đều yêu cầu các quy tắc nền tảng và ACL thực tế. Xác minh những tài liệu đó bằng tài liệu hệ thống tệp trước khi áp dụng lệnh được hiển thị cho đối tượng mang ACL.

ACL mặt nạ tương tác với chmod cần tài liệu về hệ thống tệp

Kế thừa ACL mặc định cũng nằm ngoài tuyến đường. Trang này không có đầu vào thư mục ACL, không có thao tác tạo và không có trường umask. Việc chuyển bộ chọn mục tiêu từ tệp sang thư mục sẽ thay đổi các động từ tiếng Anh đơn giản được gắn vào một chế độ cố định; nó không tạo tệp, kế thừa mô hình hoặc tính toán các quyền của đối tượng trong tương lai.

Vì lý do tương tự, chế độ thư mục hiện tại không thể dự đoán mọi chế độ con mới ở đây. Máy tính có thể giải thích rằng việc đọc, ghi và thực thi thư mục tương ứng với việc liệt kê, sửa đổi các mục nhập và tiếp cận các nội dung được đặt tên. Nó không thể kết hợp các bit cơ sở đó với các mục nhập mặc định, yêu cầu tạo hoặc mặt nạ xử lý mà nó không bao giờ nhận được.

Tương tác kế thừa và umask ACL mặc định nằm ngoài tuyến đường này

Hãy xem xét chế độ cơ sở được cung cấp 0640 cho tệp có thể cần thêm trình đọc. Máy tính hiển thị rw-r------: chủ sở hữu đọc và viết, đọc nhóm, không có gì khác. Đó là tuyên bố đầy đủ được hỗ trợ bởi đầu vào của nó. Nó không xác định kiểm toán viên cũng như không đưa ra loại thứ tư để xác định danh tính đó.

Lưu giữ bản ghi chế độ cơ sở này trong khi ACL công việc diễn ra ở nơi khác. Nếu quy trình bên ngoài sau đó báo cáo một chế độ khác, hãy giải mã lại chế độ đó và so sánh từng lớp. Không dán lệnh ACL vào trường chế độ hoặc cho rằng bản xem trước lệnh kết hợp các mục nhập được đặt tên. Nó luôn chỉ đại diện cho chế độ số hiện được hiển thị.

Ví dụ đã hoạt động: giữ cho chế độ cơ sở có thể đọc được trong khi ACL công việc diễn ra ở nơi khác

Các dòng ACL khác, các quy tắc hệ thống tệp từ xa và hỗ trợ gắn kết không được các nguồn này thiết lập. Máy tính không phát hiện loại bộ nhớ, tùy chọn được gắn, hệ điều hành hoặc tính khả dụng của các thao tác ACL. Do đó, chế độ xem ACL bị thiếu là ranh giới triển khai chứ không phải bằng chứng cho thấy đối tượng cơ bản thiếu các biện pháp kiểm soát truy cập phong phú hơn.

Chính sách bắt buộc, khả năng, quyền sở hữu và nhận dạng quy trình cũng tách biệt. Ngay cả kiến ​​thức đầy đủ về chế độ cơ bản cũng không thể thay thế được những đầu vào đó. Báo cáo việc chuyển đổi chế độ dưới dạng một lớp và dán nhãn rõ ràng cho từng lớp không được quan sát. Điều này ngăn không cho màn hình rwx sạch bị nhầm lẫn với phân tích ủy quyền hoàn chỉnh.

Các mẫu ACL khác và hỗ trợ gắn kết không được suy luận

Khi đủ ba lớp, máy tính sẽ đưa ra một tài khoản chính xác, có thể đảo ngược về chúng. Khi không, hãy giữ cho tài khoản cơ sở đó có thể đọc được thay vì buộc một ngoại lệ được đặt tên vào lớp khác. Các chế độ xem bát phân, ký hiệu và hộp kiểm phải đồng ý về cùng một giá trị chủ sở hữu, nhóm, giá trị khác và bit đặc biệt.

Quy tắc dừng rất đơn giản: sử dụng lộ trình này cho số học ở chế độ cơ sở và các công cụ có thẩm quyền, bên ngoài cho trạng thái ACL. Không bao giờ suy ra các mục nhập có tên, mặt nạ, tính kế thừa hoặc hỗ trợ hệ thống tệp chỉ từ rwx. Việc xem xét cẩn thận sẽ kết hợp các nguồn bằng chứng riêng biệt đó mà không giả vờ rằng máy tính thực hiện các cấu trúc kiểm soát truy cập mà mã nguồn của nó không chứa.