Tiếng Việt

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

Cách umask quyết định quyền mặc định của các tệp và thư mục mới

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

chmod unix developer-workflow

kết quả umask đượ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

Tệp mới không bắt đầu tại 777; một mặt nạ được áp dụng đầu tiên. Bài đăng này hiển thị hoạt động theo bit chính xác, tại sao các tệp và thư mục lại có kết quả khác nhau cũng như cách lý giải về umask 022, 027 và 077.

Các tệp mà máy chủ web không thể đọc - một công việc định kỳ ghi các tệp 600 vào một thư mục mà nginx phục vụ và không ai chạy chmod trên bất cứ thứ gì

Chế độ tệp mới được quan sát có thể được giải mã ở đây ngay cả khi không xác định được quy trình tạo ra nó. Nhập 600 và máy tính hiển thị rw-------: chủ sở hữu đọc và viết, không có quyền cho nhóm hoặc người khác. Điều đó giải thích các bit của kết quả được cung cấp. Nó không xác định lý do tại sao một công việc được lên lịch lại tạo ra giá trị đó hoặc liệu một quy trình web có thể đọc tệp hay không.

Điều 501 cung cấp biện pháp hạn chế chẩn đoán cần thiết. Chế độ hợp lệ có thể cùng tồn tại với quyền sở hữu sai hoặc thiếu bit thực thi trên thư mục mẹ. Trang này không nhận được thông tin nhận dạng cũng như đường dẫn của quá trình. Nó có thể so sánh 600 với 640 được đề xuất và hiển thị bit đọc nhóm được thêm vào, nhưng nó không thể quy chế độ ban đầu cho umask, dịch vụ, shell hoặc hệ thống tệp.

Nơi có các quyền mới — chế độ được yêu cầu (thường là 666 đối với tệp, 777 đối với thư mục) và ô của quy trình

Các chế độ tạo và umask được yêu cầu là đầu vào nền chứ không phải điều khiển máy tính. Không có trường umask và không có thao tác nào tạo tệp hoặc thư mục. Do đó, bất kỳ ví dụ về chế độ tạo nào cũng phải đến dưới dạng kết quả được tính toán bên ngoài. Sau khi được cung cấp, máy tính có thể dịch kết quả đó sang các dạng bát phân, ký hiệu, ma trận, tóm tắt và tiếng Anh đơn giản mà không yêu cầu giá trị thu được như thế nào.

Phạm vi đã sửa này rất quan trọng vì đầu ra được đồng bộ hóa có thể trông có thẩm quyền hơn thực tế. Nhập 640 mang lại rw-r----- và xác định chủ sở hữu đã đọc/write cộng với nhóm đã đọc. Trang có thể xác minh sự trình bày đó. Nó không thể dự đoán các giá trị mặc định cho quy trình đăng nhập, tác vụ, dịch vụ, bộ chứa hoặc hệ thống lưu trữ theo lịch trình vì không có bối cảnh nào trong số đó xuất hiện trong số các đầu vào hoặc quá trình triển khai của nó.

Các chế độ tạo và umask được yêu cầu là các dữ liệu đầu vào nền không được triển khai ở đây

AND-NOT số học phải được thực hiện bên ngoài máy tính này. Lõi của nó chấp nhận một số nguyên hoàn chỉnh và phân chia nó thành các cờ được đặt tên; nó không có toán hạng thứ hai cho mặt nạ sáng tạo. Do đó, trang không thể trình bày công thức mặt nạ, so sánh phép trừ với các phép toán theo bit hoặc quyết định xem một phép tính bên ngoài có được thực hiện chính xác hay không trước khi nhập chế độ kết quả của nó.

Những gì nó có thể kiểm tra là mẫu bit cuối cùng. Nếu một nguồn đáng tin cậy khác cung cấp 640, ma trận sẽ hiển thị quyền đọc và ghi của chủ sở hữu, quyền đọc của nhóm và không có quyền nào khác. Thay đổi nhóm đọc bản dựng lại 600, trong khi thay đổi nhóm đọc bản dựng lại khác 644. Các chuyển đổi này xác minh số học chế độ bên trong trình chuyển đổi mà không hiển thị chúng dưới dạng phép tính mặt nạ sáng tạo hoặc bằng chứng về một quy trình không nhìn thấy được.

AND-NOT số học phải được thực hiện bên ngoài máy tính

Máy tính có thể so sánh các chế độ tệp và thư mục kết quả, nhưng nó không tạo ra cả hai. Với 644 được chọn, phần giải thích về tệp thông thường mô tả việc đọc và thay đổi tệp; chuyển mục tiêu sang thư mục sẽ thay đổi các động từ đó thành danh sách, sửa đổi mục nhập và tiếp cận tên. Số nguyên vẫn là 644. Sự tương phản đó chứng tỏ tại sao loại mục tiêu lại quan trọng mà không xác nhận việc tạo nào mặc định bất kỳ yêu cầu chương trình nào.

Kết quả 755 được cung cấp riêng có thể được kiểm tra theo cách tương tự. Màn hình của nó là rwxr-xr-x, với hoạt động thực thi cho tất cả các lớp; 644 là rw-r--r--, không được thực thi xuyên suốt. Trang này thể hiện rõ ràng sự khác biệt đó. Nó không lấy được giá trị từ 666, 777, 022 hoặc bất kỳ dữ liệu đầu vào nền nào khác vì những tính toán đó không được triển khai trong CHMOD_SOURCES.

Máy tính có thể so sánh các chế độ tệp và thư mục kết quả nhưng không tạo ra

Đối với ví dụ về mặt nạ hạn chế, hãy giữ phép tính ở bên ngoài và chỉ giải mã các kết quả đã nêu. Nếu một tệp thông thường được quan sát là 640, thì máy tính sẽ hiển thị rw-r-----; nếu thư mục được quan sát là 750, nó sẽ hiển thị rwxr-x---. Chủ sở hữu giữ quyền truy cập rộng hơn ở cả hai, nhóm nhận được tập hợp hẹp hơn và nhóm khác không nhận được. Những câu lệnh đó theo sau trực tiếp từ các chế độ đã hoàn thành.

Một cặp khác được cung cấp bên ngoài, 600 và 700, hiển thị cùng một phương pháp đánh giá mà không xác nhận nguồn gốc của nó. Chế độ 600 chỉ cho phép chủ sở hữu đọc và ghi trên tệp. Chế độ 700 chỉ cho phép chủ sở hữu đọc, ghi và thực thi trên một thư mục. Trình chuyển đổi có thể xác nhận từng lớp và bit, nhưng nó không thể khớp kết quả nào với cài đặt ô cụ thể từ bằng chứng của chính nó.

Ví dụ đã hoạt động: giải mã các kết quả được tính toán bên ngoài cho mặt nạ hạn chế

Trường hợp một quy trình lấy được umask là bằng chứng kho lưu trữ bên ngoài. Máy tính không tích hợp với shell, bộ lập lịch, trình quản lý dịch vụ, bộ chứa hoặc môi trường xử lý. Do đó, việc đặt tên một trong những hệ thống đó làm nguyên nhân của một chế độ sẽ vượt quá những gì trang quan sát được. Bắt đầu với một chế độ đáng tin cậy được tập hợp ở nơi khác, sau đó chỉ sử dụng tuyến đường này để làm cho chủ sở hữu, nhóm và các phần khác của nó trở nên dễ đọc.

Bản xem trước lệnh không thu hẹp khoảng cách bằng chứng đó. Nó có thể trích dẫn một đường dẫn được cung cấp và hiển thị tùy ý -R, nhưng nó không bao giờ mở đường dẫn hoặc đọc cài đặt quy trình. Tương tự, bộ chọn mục tiêu thay đổi ngôn ngữ giải thích thay vì khám phá loại đối tượng. Chuyển đổi nhất quán sẽ thu hẹp câu hỏi về quyền; nó không tiết lộ thành phần nào đã chọn chế độ hoặc liệu việc lựa chọn đó có chủ ý hay không.

Trường hợp một quá trình lấy được umask là bằng chứng bên ngoài kho lưu trữ

ACL mặc định và chế độ tạo rõ ràng nằm ngoài công cụ này. Mô hình dữ liệu của nó có một lớp chủ sở hữu, một lớp nhóm, mọi người khác và ba bit đặc biệt. Không có mục ACL được đặt tên, ACL mặt nạ, lệnh gọi tạo hoặc đối số chương trình. Do đó, máy tính không thể quyết định liệu một chế độ đã hoàn thành xuất phát từ lớp kiểm soát truy cập khác hay từ một ứng dụng cung cấp một yêu cầu cụ thể.

Một chế độ vẫn có thể được kiểm tra mà không cần thu gọn các cơ chế đó lại với nhau. Nhập giá trị bát phân quan sát được, xác nhận chín vị trí ký hiệu và so sánh ma trận với tóm tắt bốn chữ số. Nếu họ đồng ý thì chế độ truyền thống đã được giải mã chính xác. Mọi khiếu nại về các giá trị mặc định, hiệu ứng ACL hoặc hành vi của chương trình đều yêu cầu bằng chứng từ người tạo và hệ thống tệp chứ không phải cách giải thích khác về cùng một số nguyên.

ACL mặc định và chế độ mở rõ ràng nằm ngoài công cụ này

Quy trình làm việc đã sửa sẽ được tính toán ở nơi khác, sau đó kiểm tra chế độ kết quả ở đây. Cung cấp chuỗi bát phân hoặc kiểu ls đã hoàn thành và để các trường được đồng bộ hóa hiển thị từng bit. Xác thực bắt các chữ số và chữ cái bát phân không đúng định dạng ở vị trí ký hiệu không chính xác. Nó không xác thực biểu thức umask, khám phá bối cảnh tạo hoặc dự đoán tệp hoặc thư mục trong tương lai sẽ nhận được gì.

Hãy coi kết quả là một lớp chẩn đoán. 640 hoặc 750 được giải mã có thể tiết lộ sự cấp phép không mong muốn hoặc thiếu bit thực thi, trong khi bài viết 501 nhắc nhở chúng ta kiểm tra quyền sở hữu và truyền tải thư mục mẹ một cách riêng biệt. Dừng lại trước khi chỉ định nguyên nhân. Máy tính chứng minh cách một giá trị được cung cấp ánh xạ tới các quyền; nó không đưa ra cơ sở cho các khiếu nại về shell, dịch vụ, vùng chứa, ACL hoặc các mặc định của hệ thống tệp.