Tiếng Việt

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

Tại sao chmod sử dụng bát phân: tốc ký base-8 và nó đến từ đâu

· Lý lịch

chmod unix access-control

nhóm bát phân được hiển thị dưới dạng sơ đồ bit cấp phép Unix riêng biệt
Hình minh họa vector ToolAcre gốc

Bát phân có vẻ tùy ý cho đến khi bạn nhận thấy rằng một chữ số chứa chính xác ba bit. Bài đăng này giải thích sự phù hợp giữa cơ số 8 và rwx, thói quen thời DEC khiến hệ bát phân trở nên tự nhiên và quy ước về số 0 đứng đầu.

Tại sao là 755 mà không phải là 493 — cùng một chế độ trong số thập phân không có ý nghĩa gì đối với bất kỳ ai và có lý do khiến hệ bát phân thắng

Giá trị thập phân 493 và bát phân 755 có thể biểu thị cùng một số nguyên, nhưng 755 hiển thị trực tiếp nhóm quyền. Mỗi chữ số được hiển thị tương ứng với một lớp và mỗi lớp chứa chính xác ba lựa chọn nhị phân. Máy tính hoạt động dựa trên số học phù hợp đó; không cần câu chuyện lịch sử để chỉ ra lý do tại sao bát phân có thể đọc được đối với chế độ rwx.

Nhập 755 và đầu ra trở thành rwxr-xr-x. Chủ sở hữu nhận được 7, nhóm 5 và 5 khác. Việc chuyển đổi cùng một số nguyên thành nhãn thập phân chưa được nhóm sẽ ẩn các ranh giới lớp đó. Điều này giải thích tính hữu ích của ký hiệu bên trong mô hình được triển khai mà không cần giải thích lý do tại sao mọi lệnh hoặc nền tảng bên ngoài đều áp dụng nó.

Ba bit trên mỗi chữ số — cách cơ sở 8 nhóm nhị phân thành các bộ ba thẳng hàng chính xác với r, w và x

Một chữ số cơ số tám trải dài từ các giá trị từ 0 đến 7, chính xác là tổng số có sẵn từ ba bit độc lập có trọng số 4, 2 và 1. Bản đồ kết hợp rõ ràng: 0 là ---, 1 là --x, 2 là -w-, 3 là -wx, 4 là r--, 5 là r-x, 6 là rw- và 7 là rwx.

Do đó, ba chữ số thông thường phù hợp với chủ sở hữu, nhóm và các chữ số khác. Đối với 640, bộ ba nhị phân là 110, 100 và 000, mang lại rw-r------. Ma trận hộp kiểm giúp hiển thị cùng một nhóm mà không yêu cầu ký hiệu nhị phân. Việc thay đổi một quyền chỉ thay đổi tổng số lớp tương ứng và vị trí ký hiệu liên quan của nó.

Thói quen phần cứng — các máy DEC chạy Unix đời đầu được ghi lại dưới dạng bát phân, vì vậy các lập trình viên đã nghĩ đến điều đó

Các nguồn lưu trữ không thiết lập dòng phần cứng cho ký hiệu bát phân. Chúng chứa JavaScript mặt nạ bit, quy tắc phân tích cú pháp, kiểm tra và điều khiển giao diện người dùng chứ không phải tài liệu dành cho các bộ xử lý hoặc môi trường phát triển trước đó. Bất kỳ tuyên bố nào cho rằng một nền văn hóa máy cụ thể đã gây ra sự áp dụng sẽ cần bằng chứng lịch sử ngoài các tệp được phép cho bài viết này.

Thay vào đó, lời giải thích dựa trên nguồn là số học. Ba bit có tám khả năng kết hợp, do đó một chữ số cơ số tám chiếm được một bộ ba rwx mà không vượt qua ranh giới lớp. Mối quan hệ đó có thể được chứng minh trong mọi kết quả tính toán. Nó vẫn có giá trị cho dù cuối cùng một tài khoản lịch sử rộng hơn có được cung cấp từ các nguồn chính hay không.

Lịch sử phần cứng không được thiết lập bởi các nguồn kho lưu trữ

Trình phân tích cú pháp chấp nhận một đến bốn chữ số bát phân và loại bỏ tiền tố 0o tùy chọn. Do đó, 644, 0644 và 0o644 đều phân giải thành cùng một giá trị. Các chữ số 8 và 9 bị từ chối kèm theo lời giải thích cụ thể vì cả hai đều không thuộc cơ số 8 và văn bản sai định dạng không được đoán vào chế độ hợp lệ.

Chữ số có nghĩa đứng đầu mang các bit đặc biệt hơn là một lớp thông thường khác. Các trọng số 4, 2 và 1 của nó đại diện cho setuid, setgid và Sticky, trong khi các chữ số cuối vẫn giữ lại chủ sở hữu, nhóm và các chữ số khác. Bộ định dạng hiển thị ba chữ số khi không có bit đặc biệt nào được đặt và bốn chữ số khi cần một bit, trừ khi đầu ra bốn chữ số được yêu cầu rõ ràng.

Các biểu mẫu hàng đầu được chấp nhận và chữ số bit đặc biệt trong trình phân tích cú pháp này

Chuyển đổi 0644 gấp ba lần sẽ mang lại 6, 4 và 4. Ở dạng nhị phân, đó là 110, 100 và 100, vì vậy kết quả mang tính biểu tượng là rw-r--r--. Chủ sở hữu đã đọc và viết, trong khi nhóm và những người khác chỉ đọc. Mọi chế độ xem đều được lấy từ cùng một số nguyên, cho phép kiểm tra tính nhất quán trực tiếp.

Đảo ngược quá trình đạt được kết quả tương tự. Bắt đầu bằng rw-r--r--, thêm 4 và 2 cho chủ sở hữu, lấy 4 cho nhóm và lấy 4 cho nhóm khác. Các chữ số là 644. Số 0 đứng đầu tùy chọn được trình phân tích cú pháp chấp nhận không thêm bit đặc biệt; nó để lại giá trị số không thay đổi.

Tại sao hệ thập lục phân không bao giờ được sử dụng - hai chữ số thập lục phân không được chia thành ba lớp một cách rõ ràng

Hệ thập lục phân có thể mã hóa số nguyên, nhưng ranh giới chữ số bốn bit của nó không phù hợp với các lớp cấp phép ba bit. Đó là một so sánh số học, không phải bằng chứng về ký hiệu nào mà mọi người ưa thích trong lịch sử. Máy tính không chấp nhận đầu vào thập lục phân và đầu ra của nó được thiết kế xung quanh các chữ số bát phân, vị trí ký hiệu và các điều khiển Boolean được đặt tên.

Ví dụ: các quyền thông thường chiếm chín bit, hiển thị tự nhiên dưới dạng ba nhóm bát phân. Việc nhóm các bit giống nhau thành các khối bốn bit sẽ phân chia một lớp rwx theo các ranh giới chữ số. Điều này làm cho hệ thập lục phân kém minh bạch hơn cho mục đích hiển thị này, nhưng không có xác nhận nào về việc áp dụng, tiêu chuẩn hoặc lịch sử dòng lệnh chỉ xuất phát từ quan sát đó.

So sánh thập lục phân là số học, không phải bằng chứng về việc áp dụng lịch sử

Các hằng số được đặt tên từ các ngôn ngữ hoặc giao diện hệ thống khác nằm ngoài việc triển khai JavaScript này. Kho lưu trữ sử dụng các thuộc tính mô tả riêng của nó như ownerRead, groupWrite, otherExecute, setuid, setgid và Sticky. Những tên đó làm cho số học bit bên trong có thể đọc được mà không cần xác nhận sự tương đương với tiêu đề bên ngoài cụ thể hoặc API.

Nằm trong phạm vi những gì công cụ có thể xác minh: giá trị số của chế độ được cung cấp, các boolean lớp của chế độ đó, kết xuất ký hiệu, giải thích và văn bản lệnh được tạo. Trang trình duyệt không kiểm tra nền tảng đích hoặc biên dịch các hằng số gốc. Bất kỳ ai dịch kết quả sang giao diện lập trình khác nên tham khảo tài liệu chính thức của giao diện đó một cách riêng biệt.

Các hằng số C được đặt tên nằm ngoài triển khai JavaScript này

Bát phân phù hợp với máy tính này vì mỗi lớp quyền là một đại lượng ba bit và mỗi chữ số cơ số tám mang chính xác ba bit. Sự tương ứng có thể nhìn thấy được, có thể đảo ngược và dễ kiểm tra. Các bit đặc biệt sử dụng chữ số thứ tư có cùng mẫu 4, 2 và 1, trong khi các ký hiệu s, S, t và T giữ nguyên chi tiết vị trí thực thi của chúng.

Sử dụng ký hiệu như một công cụ hỗ trợ ôn tập thay vì một câu thần chú. Chia giá trị thành chủ sở hữu, nhóm, người khác và bất kỳ tiền tố đặc biệt nào; xác minh các chữ cái và hộp; sau đó quyết định sự phù hợp từ quyền sở hữu thực tế và bằng chứng về khối lượng công việc. Số học giải thích việc phân nhóm hoàn toàn mà không có những tuyên bố không được hỗ trợ về lịch sử phần cứng, tiêu chuẩn hoặc chính sách chung.