Tiếng Việt

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

Bit thực thi làm gì trên một thư mục và tại sao thư mục 644 bị hỏng

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

chmod unix developer-workflow

truyền tải thư mục đượ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

Trên một thư mục, x không phải là chạy bất cứ thứ gì; nó cấp quyền đi qua. Bài đăng này giải thích cách phân chia read/search, các trường hợp kỳ lạ mà nó tạo ra và các chế độ tránh chúng.

Quyền bị từ chối đối với tệp bạn có thể đọc — tệp đó là 644, thư mục là 644 và cat vẫn bị lỗi

Một tệp có thể đọc được có thể vẫn không thể truy cập được khi thư mục của nó thiếu sự thực thi cho lớp liên quan. Điều 501 gọi thư mục thực hiện truyền tải thay vì chạy một thư mục. Giải thích về thư mục của máy tính rõ ràng hơn: đọc các mục trong danh sách, viết các thay đổi cho phép mục nhập và thực thi các giấy phép vào thư mục và tiếp cận các tệp bên trong theo tên. Chế độ 644 không có bit thực thi cho bất kỳ lớp nào.

So sánh 644 với 755 trong khi mục tiêu được đặt thành thư mục. Cái đầu tiên hiển thị rw-r--r--; cái thứ hai hiển thị rwxr-xr-x. Mọi lợi ích của lớp đều được thực thi, trong khi chỉ chủ sở hữu mới giữ được quyền ghi ở cả hai chế độ. Sự tương phản đó giải thích sự khác biệt về quyền được biểu thị. Trang không kiểm tra tệp, xác định quá trình truy cập hoặc kiểm tra xem thư mục gốc có chặn đường dẫn thực tế hay không.

Đọc danh sách, thực hiện duyệt qua - cách thư mục r hiển thị tên trong khi x cho phép bạn mở các mục theo tên và thống kê chúng

Thư mục đọc và thực thi là các cờ riêng biệt với các giải thích riêng. Đọc tương ứng với các mục liệt kê. Thực thi tương ứng với việc vào thư mục và truy cập các tệp có tên bên trong. Do đó, một lớp có thể có một lớp mà không có lớp kia trong mô hình số. Ma trận giúp hiển thị sự khác biệt đó bằng cách đặt đọc ở trọng số 4 và thực thi ở trọng số 1 trong mỗi chữ số của lớp.

Việc thay đổi chữ số của lớp khác từ 4 thành 5 là minh họa tập trung. Bộ ba biểu tượng chuyển từ r-- sang r-x và phần giải thích thư mục bổ sung khả năng tiếp cận dựa trên tên trong khi vẫn giữ lại danh sách. Đây là một thực tế chuyển đổi, không phải là một thử nghiệm truy cập trực tiếp. Không có quyền sở hữu, danh tính, mục nhập ACL và chính sách bắt buộc nên máy tính không thể cho biết lớp nào chi phối yêu cầu thực.

Bốn kết hợp — r không có x, x không có r, cả hai và không kết hợp nào, và mỗi kết hợp cho phép người dùng thực sự làm gì

Bốn kết hợp đọc và thực thi có thể biểu diễn được mà không chỉ định hành vi hệ thống rộng hơn. Chữ số 4 là r--, chữ số 1 là --x, chữ số 5 là r-x và chữ số 0 là ---. Đối với mục tiêu thư mục, văn xuôi được tạo sẽ liên kết các bit đã chọn đó với khả năng tiếp cận dựa trên danh sách và tên. Ghi vẫn là một cờ độc lập và không được ngụ ý bởi việc đọc hoặc thực thi.

Sử dụng ma trận để tách từng lớp một thay vì coi chế độ ba chữ số làm nhãn. Trang sẽ xây dựng lại số nguyên bất cứ khi nào một hộp thay đổi, do đó, chữ số và vị trí ký hiệu trùng khớp sẽ di chuyển cùng nhau. Nó không thể mở một thư mục hoặc cố gắng tra cứu. Bốn kết hợp này là các quyền được mô hình hóa chính xác, trong khi mọi kết quả hiệu quả đều phụ thuộc vào bối cảnh mục tiêu được quan sát riêng biệt.

Truyền tải áp dụng cho mọi tổ tiên - tại sao một thư mục hạn chế ở trên đường dẫn lại phá vỡ quyền truy cập vào mọi thứ bên dưới

Điều 501 xác định quyền thực thi thư mục mẹ bị thiếu vì lý do chế độ tệp hợp lệ có thể không giải quyết được quyền truy cập. Mỗi thành phần thư mục trong một đường dẫn trình bày câu hỏi chế độ riêng của nó. Máy tính có thể giải mã từng giá trị được cung cấp một cách độc lập và hiển thị xem chủ sở hữu, nhóm hoặc người thực thi khác có mặt hay không. Nó không thể đi theo con đường hoặc xác định lớp nào áp dụng cho danh tính yêu cầu.

Điều này làm cho phân tích tổ tiên trở thành một quy trình kiểm tra bên ngoài thay vì tính năng máy tính. Nếu phụ huynh được báo cáo là 750, trang sẽ hiển thị rwxr-x---; nếu cái khác là 700, nó hiển thị rwx------. Sự khác biệt đó là cụ thể, nhưng không có kết luận nào được đưa ra cho đến khi biết được quyền sở hữu và tư cách thành viên của quy trình. Bản xem trước lệnh vẫn trơ và không đưa ra bằng chứng nào cho thấy việc thay đổi một trong hai thư mục là phù hợp.

Ví dụ đã hoạt động: sửa lỗi web root — kiểm tra từng thư mục từ/đến tệp được cung cấp và chọn 755 hoặc 750

Đối với ví dụ về web-root, hãy kiểm tra từng thành phần chế độ được cung cấp thay vì chỉ định một giá trị cho cây. Chế độ 755 cấp cho chủ sở hữu rwx và nhóm cũng như r-x khác; chế độ 750 xóa tất cả các quyền khác trong khi vẫn giữ lại nhóm r-x. Trình chuyển đổi làm cho sự khác biệt đó có thể nhìn thấy được. Nó không thể xác định quy trình web, khám phá đường dẫn hoặc chọn lớp nào cần truyền tải.

Kiểm tra tệp được phục vụ riêng biệt với các thư mục của nó. Chế độ tệp được cung cấp, chẳng hạn như 644 hiển thị rw-r--r--, trong khi cùng một số được chọn làm thư mục mô tả các hành động khác nhau và thiếu khả năng thực thi ở mọi nơi. Cách diễn đạt nhạy cảm với mục tiêu này giúp việc đọc tệp không bị nhầm lẫn với việc truyền tải thư mục. Tính phù hợp vẫn phụ thuộc vào quyền sở hữu thực tế, danh tính quy trình, tổ tiên và bất kỳ lớp kiểm soát truy cập nào không có trên trang.

Đệ quy được thực hiện đúng - tại sao chmod -R 644 trên cây là sai lầm kinh điển và cách viết hoa hoặc tìm -type d để tránh lỗi đó

Hiển thị đệ quy là khiêm tốn có chủ ý. Việc chọn nó chỉ chèn -R vào lệnh chmod được tạo; máy tính không liệt kê cây hoặc phân biệt tệp với thư mục. Việc áp dụng chế độ 644 đã hoàn thành ở mọi nơi sẽ khiến thư mục được thực thi rõ ràng trong mọi lớp. Trang có thể hiển thị kết quả đó nhưng nó không triển khai chữ X viết hoa hoặc quy trình chọn loại tệp.

Các bài tập tượng trưng được tạo ra cũng vẫn cố định. Đối với 644 chúng là u=rw,g=r,o=r, không phải là lệnh tương đối duy trì việc truyền tải có điều kiện. Trường kiểu ls hiển thị rw-r--r-- và không nên nhầm lẫn với danh sách bài tập đó. Bất kỳ chiến lược đệ quy bên ngoài nào cũng phải được xác minh bên ngoài tuyến đường này, bao gồm lựa chọn mục tiêu, xử lý liên kết và các chế độ cuối cùng được đặt trên các loại đối tượng khác nhau.

Điều này không bao gồm những gì - hành vi cố định và setgid trên các thư mục và mặt nạ ACL, được đề cập trong các bài đăng của riêng họ

Mặt nạ Sticky, setgid và ACL tách biệt với câu hỏi truyền tải thông thường. Máy tính có triển khai cách biểu diễn cố định và setgid cũng như các giải thích phù hợp với mục tiêu, nhưng phần so sánh cốt lõi của bài viết này chỉ cần đọc và thực thi. ACL mặt nạ hoàn toàn không được thể hiện. Chuyển đổi chế độ cơ sở chính xác không thể xác định liệu các mục bổ sung có cấp hoặc giới hạn quyền truy cập cho một danh tính cụ thể hay không.

Umask cũng nằm ngoài cuộc thử nghiệm. Trang chấp nhận chế độ đã hoàn thành, không chấp nhận cài đặt quy trình có thể có trước đó. Nếu thư mục xuất hiện với 644, trình chuyển đổi có thể hiển thị các vị trí thực thi bị thiếu và tạo lệnh ứng viên cho một giá trị được cung cấp khác. Nó không thể nói tại sao chế độ này lại nảy sinh, liệu quyền sở hữu có sai hay không, hay việc thay đổi nó có giải quyết được thất bại thực sự hay không.

Bài học rút ra: các thư mục cần x để có thể sử dụng được — và máy tính tạo ra sự khác biệt giữa 644 và 755 hiển thị dưới dạng r-- so với r-x

Điểm đáng chú ý là thư mục x thể hiện khả năng truy cập dựa trên tên và mục nhập trong phần giải thích của máy tính này. Chế độ 644 hiển thị r-- cho nhóm và nhóm khác, trong khi 755 hiển thị r-x cho cả hai và thêm chủ sở hữu thực thi. Trường bát phân, trường ký hiệu, ma trận và văn xuôi được đồng bộ hóa làm cho sự khác biệt đó có thể được kiểm tra mà không coi số quen thuộc là chính xác phổ biến.

Chẩn đoán ngoài số học trước khi áp dụng bất cứ điều gì. Xác nhận danh tính, quyền sở hữu có liên quan, chế độ cung cấp của từng tổ tiên và loại mục tiêu. Sau đó, sử dụng máy tính để xác minh mọi giá trị ứng cử viên đã hoàn thành. Nó sẽ từ chối ký hiệu không đúng định dạng và hiển thị chính xác những bit nào thay đổi, nhưng nó không bao giờ mở đường dẫn, thực thi chmod, đánh giá chính sách ứng dụng hoặc chứng minh rằng các bit chế độ truyền thống là thẩm quyền duy nhất.