Tiếng Việt

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

Cách đọc các quyền ls -l và chuyển đổi chúng sang chế độ bát phân

· Cách thức hoạt động

chmod unix developer-workflow

Chuỗi chế độ kiểu ls đượ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

Chuỗi mười ký tự ở đầu ls -l là một loại tệp cộng với chín bit quyền. Bài đăng này cho thấy cách giải mã nó và tạo chế độ bát phân mà chmod muốn, bao gồm các chữ cái bit đặc biệt.

Một vé có -rw-r-----+ được dán vào — bạn cần biết có nên yêu cầu người dùng chạy chmod 640 hay thứ gì khác không

Một chuỗi được dán chẳng hạn như -rw-r-----+ chứa nhiều hơn mức mà trình phân tích cú pháp này chấp nhận. Lõi được nhận dạng là phần nội dung cấp phép gồm chín ký tự, tùy chọn trước một ký tự loại tệp được hỗ trợ. Dấu cộng ở cuối làm cho dữ liệu nhập quá dài và bị từ chối. Việc xóa điểm đánh dấu bên ngoài đó sẽ để lại -rw-r-----, chuyển đổi thành 640: chủ sở hữu đã đọc/write, nhóm đã đọc và không có quyền nào cho người khác.

Chuyển đổi đó không giải mã được dấu cộng thể hiện điều gì ngoài cảnh báo của bài viết 501 rằng một danh sách dài có thể sử dụng nó cho ACL. Máy tính không có mục nhập hoặc mặt nạ ACL. Nó cũng không kiểm tra máy, chủ sở hữu, nhóm hoặc đường dẫn của vé. Do đó, chế độ 640 là giá trị quyền cơ sở được biểu thị bằng lõi được chấp nhận, không phải là câu trả lời hoàn chỉnh về quyền truy cập hiệu quả.

Ký tự đầu tiên là loại - dấu gạch ngang, d, l, c, b, p và s và tại sao nó không phải là một phần của chế độ

Ký tự đầu tiên tùy chọn được coi là điểm đánh dấu loại thay vì bit cho phép. Trình phân tích cú pháp nhận ra -, d, l, b, c, p, s, D và ?. Khi một giá trị xuất hiện trước chín vị trí quyền hợp lệ, nó sẽ bị xóa đối với số học. Chỉ riêng chủ sở hữu, nhóm và các bộ ba khác xác định giá trị bát phân và các lựa chọn ma trận.

Hành vi này rất dễ xác minh với đầu vào tương đương. Cả rwxr-x--- và -rwxr-x--- đều tạo ra 750 vì dấu gạch ngang ở đầu không đóng góp bit chế độ nào. Một điểm đánh dấu thư mục có thể đứng trước cùng một phần thân và vẫn mang lại cùng một số nguyên. Bộ chọn mục tiêu kiểm soát cách diễn đạt giải thích một cách riêng biệt, do đó việc chấp nhận một ký tự loại không có nghĩa là trình duyệt đã phát hiện hoặc mở đối tượng đó.

Chín ký tự trong ba nhóm — chủ sở hữu, nhóm, những người khác, luôn theo thứ tự rwx, có dấu gạch ngang cho mỗi bit bị tắt

Chín vị trí quyền tạo thành ba bộ ba cố định theo thứ tự chủ sở hữu, nhóm và thứ tự khác. Trong mỗi bộ ba, đọc chiếm vị trí đầu tiên, viết vị trí thứ hai và thực hiện vị trí thứ ba. Dấu gạch ngang có nghĩa là bit tương ứng bị tắt. Xác thực theo vị trí cụ thể sẽ từ chối một chữ cái bị đặt sai vị trí thay vì đoán, do đó, r ở vị trí ghi không thể âm thầm trở thành một quyền khác.

Mỗi bộ ba được chấp nhận ánh xạ tới một chữ số bát phân theo trọng số trong bài viết 501: đọc là 4, viết là 2 và thực thi là 1. Ma trận hiển thị các cờ giống như các hộp kiểm và xây dựng lại số nguyên khi thay đổi. Các chữ cái đặc biệt chỉ được chấp nhận ở các vị trí thực thi, bảo toàn setuid, setgid hoặc Stick cùng với trạng thái thực thi cơ bản.

Ví dụ đã hoạt động: -rwxr-x--- đến 750 — gán 4, 2, 1 cho mỗi chữ cái và tính tổng cho mỗi nhóm

Chuyển đổi -rwxr-x--- bằng cách bỏ qua điểm đánh dấu loại hàng đầu và chia phần thân thành rwx, r-x và ---. Chủ sở hữu có 4+2+1, tạo ra 7. Nhóm có 4+1, sản xuất 5. Cái khác không có bit kích hoạt, tạo ra 0. Máy tính trả về 750 và chọn chín hộp quyền thông thường phù hợp.

Việc kiểm tra ngược lại sẽ nằm trên cùng một nội dung văn bản. Nhập 750 và trường ký hiệu trở thành rwxr-x---; chọn điểm đánh dấu tệp thông thường cho biểu mẫu được hiển thị và nó trở thành -rwxr-x---. Bản xem trước bài tập có cú pháp khác: u=rwx,g=rx,o=. Cả ba quan điểm đều mô tả một chế độ cố định, trong khi quyền sở hữu và sự khôn ngoan khi áp dụng nó vẫn chưa được giải quyết.

Dấu cộng và dấu ở cuối — tồn tại các mục + có nghĩa là ACL, @ có nghĩa là các thuộc tính mở rộng trên macOS, không phải là một phần của chế độ

Dấu cộng và dấu ở cuối là các điểm đánh dấu siêu dữ liệu trong dàn ý, nhưng thực tế được triển khai hẹp hơn: trình phân tích cú pháp này từ chối vì đầu vào được chấp nhận kết thúc sau phần nội dung cấp phép. Điều 501 xác định cụ thể dấu cộng cuối cùng với ACL. CHMOD_SOURCES không cung cấp cách diễn giải tương đương cho ký hiệu at, vì vậy phần này không gán cho nó một nghĩa hệ điều hành không được kho lưu trữ hỗ trợ.

Không có điểm đánh dấu một cách mù quáng khi truy cập hiệu quả là vấn đề quan trọng. Thay vào đó, hãy tách lõi chín hoặc mười ký tự được chấp nhận để chuyển đổi chế độ cơ sở và điều tra mọi phần còn lại bằng bằng chứng từ hệ thống ban đầu. Máy tính có thể hiển thị rằng rw-r------ có nghĩa là 640. Nó không thể giải thích siêu dữ liệu bổ sung, đọc các thuộc tính mở rộng hoặc xác định xem cơ chế kiểm soát truy cập khác có thay đổi những gì người dùng hoặc quy trình có thể thực hiện hay không.

Dấu cộng và dấu hiệu ở cuối là các dấu siêu dữ liệu mà trình phân tích cú pháp này từ chối

Các lệnh thống kê bên ngoài không được máy tính trình duyệt chạy. Trang này không có quyền truy cập vào trình chạy lệnh hoặc hệ thống tệp; trường đường dẫn của nó chỉ tồn tại để xây dựng văn bản chmod được trích dẫn để hiển thị. Do đó, nó không thể tìm nạp chế độ hiện tại, so sánh đầu ra lệnh dành riêng cho nền tảng hoặc xác nhận rằng chuỗi được dán đến từ một tiện ích cụ thể. Người dùng phải cung cấp giá trị để chuyển đổi.

Khi chế độ đáng tin cậy được cung cấp, trình duyệt sẽ cung cấp kiểm tra mức độ đại diện độc lập. Nhập lõi biểu tượng và so sánh kết quả bát phân, ma trận, tóm tắt và xem trước bài tập của nó. Thỏa thuận phát hiện các lỗi phiên âm và số học ở định dạng được hỗ trợ. Nó không xác thực lệnh thu thập bên ngoài, tiết lộ quyền sở hữu hoặc chứng minh rằng các quyền được đại diện có hiệu lực đối với đối tượng mà văn bản được sao chép.

Các lệnh thống kê bên ngoài không được chạy bởi máy tính trình duyệt

Quá trình giải mã ACL vẫn nằm ngoài tuyến đường. Mô hình của nó chứa chủ sở hữu, nhóm, khác và ba bit đặc biệt, không có mục nhập được đặt tên hoặc mặt nạ ACL. Việc giải mã quyền của Windows cũng không có: không có mô hình nhận dạng Windows, cú pháp mục nhập kiểm soát truy cập hoặc khám phá nền tảng. Một lõi kiểu Unix chín vị trí có thể được chuyển đổi, nhưng không thể xây dựng lại hệ thống cấp phép bổ sung nào từ kết quả đó.

Ranh giới này cũng hạn chế chẩn đoán. Chế độ cơ bản có vẻ đầy đủ không chứng minh được ACL hoặc chính sách khác là không liên quan, trong khi chế độ hạn chế không xác định mọi khoản trợ cấp có thể có. Máy tính chỉ xử lý mười hai bit được biểu thị. Sử dụng đầu ra của nó để nêu chính xác chế độ thông thường, sau đó bảo lưu các khiếu nại về ủy quyền hiệu quả đối với các công cụ và tài liệu thực sự làm lộ hệ thống cấp phép bên ngoài.

ACL và giải mã quyền Windows vẫn nằm ngoài tuyến đường

Việc đọc chế độ kiểu ls trở nên cơ học khi lõi được chấp nhận bị cô lập. Bỏ một ký tự loại dẫn đầu được nhận dạng, chia chín vị trí còn lại thành chủ sở hữu, nhóm và vị trí khác và tổng số lần đọc 4, viết 2 và thực thi 1 trong mỗi bộ ba. Máy tính thực hiện chuyển đổi đó và xác thực các chữ cái theo vị trí cụ thể, bao gồm các biểu mẫu s, S, t và T đã triển khai.

Giữ kết luận tỷ lệ thuận với đầu vào. Chuyển đổi thành công chứng tỏ rằng chuỗi được chấp nhận ánh xạ nhất quán sang chế độ bát phân, ma trận, tóm tắt và gán được tạo. Nó không chạy stat, kiểm tra đường dẫn, giải mã dấu vết, xác định quyền sở hữu hoặc áp dụng chmod. Những giới hạn đó làm cho kết quả đầu ra trở nên hữu ích: nó chính xác về số học ở chế độ cơ sở và không có bằng chứng nào mà nó không bao giờ thu thập được.