Công cụ dành cho nhà phát triển · Máy tính Chmod
Mô hình cấp phép Unix: từ những năm 1970 chmod đến các bit chế độ POSIX
· Lý lịch
chmod unix access-control
Mô hình của chủ sở hữu/group/others đã tồn tại qua nhiều thập kỷ với rất ít thay đổi. Bài đăng này cho biết nó đến từ đâu, POSIX đã được tiêu chuẩn hóa những gì và tại sao nó vẫn phù hợp với hầu hết các công việc.
Một thiết kế của những năm 1970 trong quá trình triển khai vào những năm 2020 của bạn — mọi bộ chứa và bộ chạy CI vẫn nói rwx và điều đó giúp bạn biết lý do tại sao
Các triển khai hiện tại vẫn hiển thị các chế độ như 0644 và các chuỗi tượng trưng như rw-r--r--, nhưng kho lưu trữ này không phải là kho lưu trữ lịch sử. Bằng chứng của nó là sự biểu diễn đã được triển khai: 12 bit, chuyển đổi xác định và xác nhận đầu vào bát phân và ký hiệu. Ngày tháng, nhà phát minh, bằng sáng chế và tuyên bố về mọi hệ thống có nguồn gốc từ Unix đều yêu cầu các nguồn không được cung cấp ở đây.
Do đó, máy tính cung cấp một cái nhìn hiện tại về một mô hình cấp phép nhỏ gọn. Một số nguyên điều khiển chủ sở hữu, nhóm và các điều khiển khác cùng với setuid, setgid và Sticky. Đầu ra có thể được kiểm tra ở dạng bát phân, ký hiệu và ma trận. Sự đồng thuận chứng tỏ sự chuyển đổi nhất quán chứ không phải nguồn gốc, tính phổ quát hay tính thực thi của mô hình.
Ký hiệu tồn tại lâu dài xuất hiện trong các triển khai hiện tại, nhưng kho lưu trữ này không phải là nguồn lịch sử
Chín bit thông thường tạo thành ba lớp bằng nhau. Chủ sở hữu, nhóm và những người khác đều nhận được các vị trí đọc, ghi và thực thi với các trọng số 4, 2 và 1. Máy tính giữ trật tự đó ở mọi nơi: trong ba chữ số bát phân ở cuối, hàng ký hiệu chín ký tự, ma trận hộp kiểm và mô tả bằng tiếng Anh đơn giản được tạo cho một tệp hoặc thư mục.
Chế độ 640 thể hiện cấu trúc không có xác nhận dòng dõi. Chủ sở hữu 6 có nghĩa là đọc và viết, nhóm 4 có nghĩa là đã đọc và 0 khác có nghĩa là không có quyền thông thường, tạo ra rw-r------. Như bài viết 501 giải thích, đây là những cờ có thể tính toán được; việc xác định chủ sở hữu, nhóm hoặc quy trình thực tế vẫn nằm ngoài quá trình chuyển đổi.
Mô hình được triển khai có chín bit thông thường trong ba lớp
Setuid được triển khai dưới dạng mặt nạ 4000. Trên một tệp thông thường, trình kết xuất đặt s vào vị trí thực thi của chủ sở hữu khi có cả setuid và chủ sở hữu thực thi. Nếu setuid xuất hiện mà không có sự thực thi của chủ sở hữu, thì thay vào đó, nó sẽ đặt S ở đó, duy trì sự khác biệt quan trọng giữa bit đặc biệt và bit thực thi thông thường bên dưới nó.
Mô tả tệp giải thích chữ thường là việc thực thi với danh tính của chủ sở hữu tệp và gắn cờ tổ hợp chữ hoa là không có gì để chạy. Những câu lệnh đó mô tả kết quả đầu ra của việc triển khai này. Kho không cung cấp hồ sơ bằng sáng chế hoặc lịch sử chính, vì vậy phần này không quy định cơ chế hoặc ngày giới thiệu của nó.
hành vi setuid được thực hiện; lịch sử bằng sáng chế không có nguồn gốc
Giải thích thư mục sử dụng cùng một giá trị số nhưng các động từ khác nhau cho các bit thông thường. Đọc các mục danh sách, viết bìa, tạo, đổi tên và xóa các mục, đồng thời thực hiện bìa vào thư mục và tiếp cận nội dung được đặt tên. Việc triển khai cũng mô tả setgid trên một thư mục khiến các tệp mới được tạo kế thừa nhóm của thư mục đó.
Sticky được đại diện bởi 1000 và chiếm vị trí thực thi khác là t hoặc T. Đối với một thư mục, công cụ này mô tả việc xóa hạn chế đối với các mục được chia sẻ. Đây là những ngữ nghĩa được triển khai do máy tính trình bày; không có lịch sử nhánh hoặc dòng dõi hệ thống chéo nào được thiết lập và không có hệ thống tệp trực tiếp nào được truy vấn để xác nhận hành vi cục bộ.
Hành vi bit đặc biệt của thư mục được mô tả mà không có yêu cầu về dòng dõi
Nguồn nêu tên trực tiếp của từng mặt nạ: 0400, 0200 và 0100 cho chủ sở hữu; 0040, 0020 và 0010 cho nhóm; 0004, 0002 và 0001 cho người khác. Thêm Setuid, setgid và cố định 4000, 2000 và 1000. Chuyển đổi là kiểm tra bit và kết hợp bitwise chứ không phải là kháng cáo theo tiêu chuẩn bên ngoài.
Quy tắc đầu vào cũng cụ thể tương tự. Hệ bát phân chấp nhận một đến bốn chữ số từ 0 đến 7, với các biểu mẫu dẫn đầu kiểu 0 hoặc 0o tùy chọn. Đầu vào tượng trưng chấp nhận chín vị trí hoặc mười vị trí với ký tự loại tệp được nhận dạng. Kho lưu trữ không thiết lập rằng mọi triển khai hoặc tiêu chuẩn đều chấp nhận chính xác cùng một ngữ pháp bề mặt.
Mặt nạ bit được đặt tên và ngữ nghĩa chuyển đổi được xác minh; những tuyên bố về tiêu chuẩn phổ quát không phải
Mô hình nhỏ gọn có những giới hạn có chủ ý. Nó cung cấp một lớp chủ sở hữu, một lớp nhóm và một lớp khác, nhưng không có mục nhập người dùng được đặt tên, mục nhập nhóm được đặt tên, mặt nạ ACL hoặc ACL mặc định. Nó cũng không có bộ khả năng. Những cơ chế đó không thể được suy ra từ một chuỗi rwx thông thường hoặc một chuyển đổi bát phân thành công.
Tạo lệnh không mở rộng mô hình. Nó phát ra một đối số bát phân hoặc các mệnh đề u=, g= và o= rõ ràng, thêm u+s, g+s hoặc +t khi được yêu cầu. Kết quả vẫn hiển thị văn bản. Quá trình đánh giá có trách nhiệm sẽ thu thập riêng biệt mọi ACL, khả năng, quyền sở hữu và bằng chứng thực thi trước khi coi chế độ này là một tài khoản kiểm soát quyền truy cập hoàn chỉnh.
ACL và các khả năng nằm ngoài mô hình chế độ được triển khai
Bộ nguồn này không chứa bản so sánh được hỗ trợ với Windows, VMS, Plan 9 hoặc lịch sử cấp phép của hệ điều hành khác. Bỏ qua những câu chuyện đó sẽ chính xác hơn là trình bày những điều tương phản được ghi nhớ như một sự thật. Máy tính chỉ thể hiện cách biểu diễn chế độ mà nó thực hiện và các thử nghiệm của nó có thể thiết lập hành vi chuyển đổi thay vì sự phát triển của các hệ thống không liên quan.
Sự thận trọng tương tự cũng áp dụng cho ngôn ngữ có khả năng tương thích rộng. Ký tự loại tệp hàng đầu được công nhận có thể được phân tích cú pháp trước chín vị trí cấp phép, nhưng điều đó không chứng minh được định dạng ls phổ quát. Sử dụng kết quả đầu ra làm cách đọc chính xác ký hiệu được chấp nhận của công cụ này, sau đó tham khảo tài liệu nền tảng có thẩm quyền để biết hành vi vượt ra ngoài các ranh giới được nguồn hỗ trợ này.
Lịch sử cấp phép của hệ điều hành khác bị bỏ qua mà không có nguồn
Điều còn sót lại sau sự xem xét kỹ lưỡng ở đây là tính gọn nhẹ của mô hình được triển khai. Mười hai bit được đặt tên bao gồm ba lớp cấp phép thông thường và ba cờ đặc biệt, trong khi các chế độ xem bát phân và ký hiệu hiển thị cùng một số nguyên ở các dạng khác nhau. Các chữ số không hợp lệ hoặc các ký tự tượng trưng bị đặt sai vị trí sẽ bị từ chối thay vì được sửa chữa một cách âm thầm, dẫn đến lỗi hiển thị trong quá trình chuyển đổi.
Thế là đủ cho một bài học thực tế mà không cần bài học lịch sử. Giải mã chế độ, kiểm tra từng lớp và để ý xem s, S, t hoặc T có thay thế vị trí thực thi hay không. Sau đó dừng ở nơi bằng chứng dừng lại: máy tính giải thích cách trình bày và văn bản được tạo, trong khi quyền sở hữu, chính sách, hành vi hệ thống tệp và nguồn gốc lịch sử yêu cầu các nguồn khác.