Công cụ dành cho nhà phát triển · Máy tính Chmod
chmod vs chown: tại sao thay đổi chế độ thường là đòn bẩy sai
· Tại sao nó quan trọng
chmod unix access-control
Các bit chế độ chỉ có ý nghĩa liên quan đến chủ sở hữu và nhóm. Bài đăng này phân tách hai lệnh và chỉ ra cách quyết định, từ lỗi và nhận dạng quy trình, cái nào bạn thực sự cần.
Hai lệnh, một lỗi - quyền bị từ chối đã được 'sửa' ba lần trong tháng này với ba dòng chmod và chown khác nhau
chmod và chown xử lý các thông tin khác nhau, ngay cả khi cả hai đều xuất hiện gần lỗi quyền. Máy tính lập mô hình các bit quyền cho chủ sở hữu, nhóm và người khác, cùng với các bit đặc biệt. Nó không nhận được chủ sở hữu hoặc nhóm hiện tại và không thực hiện hoạt động sở hữu. Do đó, một chế độ có thể được dịch chính xác trong khi mối quan hệ nhận dạng vẫn chưa được xác định và chưa được kiểm tra.
Hãy tách các câu hỏi trước. “750 cho phép những gì?” có thể trả lời được: chủ sở hữu nhận được rwx, nhóm nhận được r-x và nhóm khác không nhận được gì. “Ai sở hữu cái này?” và “Danh tính nào điều hành quá trình?” yêu cầu bằng chứng bên ngoài. Chỉnh sửa chế độ trước khi giải quyết danh tính có thể mở rộng sai lớp; chế độ xem được đồng bộ hóa không thể chọn giữa chmod và thay đổi quyền sở hữu.
Quyền sở hữu trước, sau đó là chế độ - cách kernel chọn chủ sở hữu, nhóm hoặc những người khác cho một quy trình trước khi nó xem xét bất kỳ bit nào
Việc lựa chọn lớp phụ thuộc vào danh tính mà máy tính không bao giờ nhận được. Chủ sở hữu, nhóm và các bộ ba khác của nó là các danh mục, không phải tài khoản được phát hiện. Nó không thể biết liệu một tiến trình có khớp với chủ sở hữu, thuộc nhóm của tệp hay rơi vào nhóm khác hay không. Nó chỉ đơn giản hiển thị cả ba bộ quyền từ một số nguyên; thông tin xác thực yêu cầu kiểm tra bên ngoài.
Do đó, bản sắc là điều kiện tiên quyết để đánh giá mức độ phù hợp. Với chế độ 640, chủ sở hữu đã đọc và viết, nhóm đã đọc và nhóm khác không có gì. Việc chuyển đổi là chắc chắn, nhưng bộ ba áp dụng được thì không. Không có UID, tư cách thành viên, ánh xạ vùng chứa hoặc ACL nào được đưa vào tiểu bang. Trước tiên hãy thiết lập những sự thật đó, sau đó đánh giá các bit tương ứng.
Lựa chọn lớp phụ thuộc vào danh tính mà máy tính không nhận được
Các công cụ quyền sở hữu thay đổi người nắm giữ các mối quan hệ chủ sở hữu hoặc nhóm, trong khi chmod thay đổi các quyền gắn liền với các lớp đó. Máy tính này chỉ thực hiện phía chmod. Nó tạo ra văn bản chmod bát phân hoặc tượng trưng và không bao giờ phát ra chown hoặc chgrp. Nó cũng không làm thay đổi tệp nào; trường đường dẫn chỉ xây dựng bản xem trước được trích dẫn để bên ngoài xem xét.
Việc mở rộng một chế độ có thể hiển thị các lớp bổ sung mà không sửa quyền sở hữu. So sánh 750 với 757: cái sau thêm phần đọc và thực thi khác. Máy tính hiển thị đồng bằng đó nhưng không thể cho biết liệu lợi ích hoặc quyền sở hữu tài khoản khác có gây ra lỗi hay không. Thiết lập danh tính chủ sở hữu, nhóm và quy trình bên ngoài, sau đó chỉ cấp cho các lớp dự định các bit cần thiết của chúng.
Mẫu nhóm chia sẻ - chgrp cộng với setgid trên thư mục cộng với 2775 làm câu trả lời tiêu chuẩn cho hai người dùng đều cần viết
Quy trình làm việc của nhóm chia sẻ yêu cầu các công cụ và chính sách sở hữu bên ngoài. Giá trị đặt trước 775 được gắn nhãn “được chia sẻ với một nhóm” vì tính năng ghi nhóm được bật. Đặt trước 2775 thêm setgid, hiển thị rwxrwsr-x; đối với các thư mục, các tệp mới kế thừa nhóm của thư mục. Các mô tả bit này không tạo thành một đề xuất triển khai hoặc thiết kế cộng tác hoàn chỉnh.
Trang không thể tạo nhóm, chọn thành viên, chạy chgrp hoặc thiết lập 2775 phù hợp với khối lượng công việc. Nó cũng không thể kiểm tra ACL, ô hoặc hành vi ứng dụng mặc định. Hãy coi giá trị đặt trước là số học chứ không phải chính sách. Giải quyết quyền sở hữu và tư cách thành viên ở nơi khác, sau đó so sánh các chế độ ứng cử viên trong khi căn cứ thiết kế thư mục dùng chung thực tế dựa trên bằng chứng môi trường.
Quy trình làm việc của nhóm chia sẻ yêu cầu các công cụ và chính sách sở hữu bên ngoài
Sau khi giải quyết quyền sở hữu ở nơi khác, hãy kiểm tra chế độ thư mục 750. Chủ sở hữu nhận được đọc, viết và thực thi; nhóm nhận được đọc và thực thi; người khác không nhận được gì. Nhóm có thể liệt kê và nhập nhưng không được tạo, đổi tên hoặc xóa mục. Máy tính hiển thị rwxr-x--- và u=rwx,g=rx,o= mà không kiểm tra thư mục hoặc tài khoản thực tế.
Kiểm tra riêng biệt 640 đối với tệp thông thường. Nó trở thành rw-r------: chủ sở hữu đọc và viết, nhóm đọc và không có gì cho người khác. Trang hiển thị cả hai kết quả nhưng không thể gán chúng theo cách đệ quy, xác định tài khoản triển khai hoặc chọn nhóm dịch vụ. Việc xác nhận tính phù hợp cho /var/www yêu cầu không có khối lượng công việc và bằng chứng nhận dạng ở đây.
Ví dụ đã hoạt động: kiểm tra 750 và 640 sau khi quyền sở hữu được giải quyết ở nơi khác
Quá trình phát hiện danh tính nằm ngoài công cụ trình duyệt này. Không có nguồn nào gọi ps, đọc cấu hình dịch vụ, kiểm tra vùng chứa tên vùng chứa hoặc truy vấn cơ sở dữ liệu tài khoản. Máy tính không thể xác định tài khoản đang chạy hoặc nhóm bổ sung, do đó, nó không thể xác định loại quyền nào chi phối một hoạt động. Sự phân loại đó yêu cầu bằng chứng hiện tại từ môi trường hệ thống tệp và thời gian chạy có trách nhiệm.
Khi danh tính được thiết lập bên ngoài, hãy xem lại lớp có liên quan một cách chính xác. Nếu một quy trình nên sử dụng quyền truy cập nhóm, 640 sẽ cấp cho lớp đó quyền đọc nhưng không ghi, trong khi 660 sẽ thêm quyền ghi nhóm. Số học này không phải là một khuyến nghị; bit chính xác phụ thuộc vào các hoạt động cần thiết. Giữ khả năng khám phá và chính sách bên ngoài trình chuyển đổi, sử dụng nó để ngăn ngừa các lỗi trình bày.
Quá trình phát hiện danh tính nằm ngoài công cụ trình duyệt này
Ánh xạ ACL và vùng chứa UID không có trong máy tính. Mô hình của nó bao gồm ba lớp thông thường và các bit đặc biệt, nhưng không có mục nhập ACL có tên, mặt nạ hoặc bản dịch không gian tên. Một chế độ có thể trông đầy đủ trong khi một lớp khác hạn chế quyền truy cập hoặc hạn chế trong khi ACL mở rộng nó. Chỉ riêng số nguyên được cung cấp không thể giải quyết được cả hai khả năng.
Thiếu đầu vào sẽ hạn chế cả việc chẩn đoán và khắc phục. Tuyến đường không thể chọn trong số các thay đổi chmod, chown, ACL hoặc sửa lỗi ánh xạ. Nó có thể giải mã chế độ cơ sở được cung cấp và hiển thị các chữ cái đặc biệt như s, S, t và T. Hãy coi đó là một lớp bằng chứng chứ không phải bằng chứng về quyền truy cập của bên thứ ba hoặc vùng chứa.
Bài học rút ra: quyết định danh tính trước bit - sau đó sử dụng máy tính Chmod để làm cho các bit có độ rộng chính xác theo nhu cầu nhận dạng
Quyết định danh tính trước bit. Một chế độ hoạt động thông qua chủ sở hữu, nhóm và các lớp khác, nhưng máy tính biết các quyền hơn là các tài khoản chiếm giữ chúng. Sau khi kiểm tra bên ngoài thiết lập quyền sở hữu và nhận dạng quy trình, hãy nhập ứng viên và xác minh từng cờ đọc, ghi và thực thi dự định. Việc so sánh các giá trị lân cận cho thấy sự mở rộng ngẫu nhiên trước khi các lệnh rời khỏi trình duyệt.
Đầu ra cuối cùng vẫn là một đề xuất. Trang từ chối đầu vào không đúng định dạng, đồng bộ hóa các dạng bát phân và ký hiệu, giải thích ý nghĩa của tệp và thư mục, trích dẫn đường dẫn và tạo văn bản chmod. Nó không thể thực thi lệnh, thay đổi quyền sở hữu, đánh giá ACL, kiểm tra chính sách hoặc kiểm tra ứng dụng. Xác thực mọi thay đổi được đề xuất trên hệ thống chịu trách nhiệm sau khi giải quyết danh tính.