Tiếng Việt

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

Tại sao chmod 777 lại là bản sửa lỗi sai cho lỗi bị từ chối cấp phép

· Tại sao nó quan trọng

chmod unix access-control

các chế độ quá rộng đượ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

777 làm cho lỗi biến mất bằng cách cung cấp cho mọi người mọi thứ. Bài đăng này giải thích những gì nó thực sự cấp, cách nó được khai thác và các bước chẩn đoán để tìm ra vấn đề thực sự.

Lỗi đã biến mất, câu hỏi thì không — chmod -R 777 trên thư mục dự án đã sửa biểu mẫu tải lên và không ai biết tại sao

Lỗi quyền biến mất sau 777 chỉ chứng tỏ rằng quyền truy cập rộng rãi đã thay đổi kết quả. Nó không tiết lộ bit nào quan trọng hoặc liệu bit chế độ có gây ra lỗi hay không. Máy tính ánh xạ 777 tới rwxrwxrwx. Mỗi lớp nhận được quyền đọc, ghi và thực thi, ý nghĩa thực tế của chúng khác nhau giữa các tệp và thư mục thông thường.

Bằng chứng hữu ích là sự khác biệt về mức độ bit so với chế độ ban đầu. Ghi lại bộ ba lớp của chế độ đó, sau đó so sánh 777 mà không gọi thành công là chẩn đoán. Máy tính không biết danh tính quy trình, chủ sở hữu, nhóm, ACL hoặc chính sách bắt buộc. Nó chỉ hiển thị mức độ truy cập mà 777 cấp trước khi một giải pháp thay thế trở thành cài đặt vĩnh viễn.

Những gì 777 cấp bằng những từ đơn giản — mọi người dùng trên hệ thống đều có thể đọc, sửa đổi và (đối với các thư mục) tạo hoặc xóa bất kỳ thứ gì trong cây

Chế độ 777 chỉ định chữ số thông thường tối đa cho mỗi lớp. Mỗi 7 kết hợp đọc 4, viết 2 và thực thi 1, tạo ra rwxrwxrwx. Đối với tệp, tất cả các lớp có thể đọc, thay đổi và chạy nội dung. Đối với các thư mục, họ có thể liệt kê, sửa đổi các mục và nhập theo tên. Mọi hộp kiểm thông thường đều được chọn.

“Mọi người khác” tương ứng cụ thể với bộ ba quyền cuối cùng, không phải tài khoản đã biết. Không có danh tính và quyền sở hữu, máy tính không thể xác định liệu một quy trình có sử dụng chủ sở hữu, nhóm hay người khác hay không. So sánh 777 với 775 hoặc 755 vẫn cho thấy chính xác từng bit ghi bị xóa, thay thế các mô tả mơ hồ như “mở” bằng sự khác biệt rõ ràng ở cấp độ lớp.

Thiệt hại xảy ra như thế nào - quy trình web bị xâm phạm, tập lệnh được viết sai hoặc cấu hình chỉnh sửa của đối tượng thuê khác hoặc làm rơi web shell

Máy tính hiển thị các bit được cấp nhưng không thể chứng minh đường dẫn khai thác. Tệp có thể ghi trên toàn thế giới sẽ đưa ra cảnh báo rằng bất kỳ tài khoản nào cũng có thể thay đổi nội dung của nó. Thư mục 777 không có cảnh báo dính rằng các mục nhập có thể được tạo hoặc bị xóa. Những hậu quả này xuất phát từ phương thức và loại mục tiêu, không phải bằng chứng cho thấy tài khoản khác tồn tại hoặc hành động.

Tách biệt các hậu quả có thể xảy ra với các sự kiện được quan sát. Trang này không kiểm tra quy trình, đối tượng thuê, tập lệnh, cấu hình hoặc gốc web và không thực thi gì. Nó có thể thiết lập rằng chức năng ghi được kích hoạt cho một lớp và gắn cờ một ứng cử viên rộng rãi để xem xét. Khiếu nại về sự xâm phạm, tệp bị chèn hoặc lạm dụng thực tế cần có bằng chứng về môi trường mà máy tính không bao giờ thu thập.

Máy tính hiển thị các bit được cấp nhưng không thể hiển thị đường dẫn khai thác

Chẩn đoán danh tính và quyền sở hữu xảy ra bên ngoài tuyến đường này. Các bit thông thường được nhóm thành chủ sở hữu, nhóm và nhóm khác, nhưng máy tính chỉ nhận được số nguyên chế độ và loại mục tiêu. Nếu không có tên chủ sở hữu, thành viên nhóm hoặc thông tin xác thực quy trình, nó không thể quyết định bộ ba nào kiểm soát một nỗ lực truy cập không thành công, mặc dù nó giải mã từng bộ ba một cách nhất quán.

Đây là lý do tại sao việc mở rộng tất cả các lớp là một phương pháp chẩn đoán yếu. Bit nhóm được xác minh có thể quan trọng khi một quá trình nên sử dụng quyền truy cập nhóm; quyền sở hữu không chính xác có thể làm cho bất kỳ chế độ chỉnh sửa sai biện pháp khắc phục. Sử dụng ma trận để tách biệt các thay đổi của ứng viên, sau đó xác minh danh tính và quyền sở hữu từ bên ngoài. Trình duyệt giải quyết việc đại diện chứ không phải ủy quyền.

Chẩn đoán danh tính và quyền sở hữu phải diễn ra bên ngoài tuyến đường này

Đối với thư mục tải lên, hãy so sánh các ứng cử viên mà không cần chỉ định. Chế độ 777 cho phép mọi thư mục lớp được đọc, ghi và thực thi. Chế độ 775 xóa chế độ ghi khác trong khi vẫn duy trì chế độ ghi nhóm. Chế độ 755 ghi dự trữ cho chủ sở hữu. Máy tính hiển thị những khác biệt này nhưng không thể biết người tải lên sử dụng lớp nào hoặc thao tác nào cần.

Ghi lại sự thay đổi bit nhỏ nhất giữa các ứng cử viên. Từ 777 đến 775, chỉ ghi khác biến mất; từ 775 đến 755, việc ghi theo nhóm cũng biến mất. Các điều khiển ghi thư mục tạo, đổi tên và xóa các mục nhập, đồng thời thực thi các điều khiển mục nhập và tra cứu tên. Sự phù hợp vẫn phụ thuộc vào quyền sở hữu, danh tính, ACL và hành vi ứng dụng bên ngoài máy tính.

Ví dụ đã hoạt động: so sánh các chế độ thư mục tải lên ứng viên mà không cần quy định một chế độ nào

Quy tắc từ chối dành riêng cho chương trình yêu cầu tài liệu và bằng chứng thời gian chạy của chương trình đó. Nguồn chmod không chứa chính sách SSH, quy tắc máy chủ web hoặc cấu hình ứng dụng. Chúng không thể chứng minh rằng phần mềm từ chối 777, chấp nhận 755 hoặc yêu cầu một giá trị khác. Máy tính chỉ chuyển đổi các chế độ và mô tả các thao tác với tệp hoặc thư mục thông thường của chúng.

Nếu phần mềm báo cáo các quyền quá rộng, hãy vào chế độ được quan sát và kiểm tra nhóm của nó cũng như các bit khác. Sau đó tham khảo bằng chứng có thẩm quyền cho chương trình đó trước khi thay đổi bất cứ điều gì. Dòng chmod được tạo là văn bản trơ. Hiển thị bát phân và biểu tượng phù hợp xác nhận tính nhất quán của chuyển đổi, không tuân thủ chính sách chương trình hoặc thành công hoạt động trong tương lai.

Quy tắc từ chối dành riêng cho chương trình cần có tài liệu của chương trình đó

Việc từ chối kiểm soát truy cập bắt buộc nằm bên ngoài chmod và máy tính. Không có truy vấn nguồn SELinux, AppArmor hoặc công cụ chính sách khác. Do đó, chế độ 777 có thể hiển thị hoàn hảo trong khi điều khiển không liên quan vẫn ẩn. Trang không thể phân biệt điều kiện đó với quyền sở hữu, ACL, hạn chế lưu trữ hoặc ứng dụng; tất cả đều là những khả năng bên ngoài hơn là những phát hiện của máy tính.

Không coi chế độ rộng là một thử nghiệm chung cho mọi lớp ủy quyền. Bằng chứng của máy tính kết thúc bằng chủ sở hữu, nhóm và các bit khác cộng với setuid, setgid và Sticky. Nó hiển thị các quyền đã chọn chứ không phải lý do tại sao một thao tác thành công hay thất bại. Bảo toàn các chế độ được quan sát, so sánh các bit chính xác và điều tra chính sách bên ngoài một cách độc lập.

Từ chối chính sách bắt buộc nằm ngoài chmod và bên ngoài máy tính

Hiểu từng khoản trợ cấp trước khi mở rộng một chế độ. Nhập 777 và tất cả chín quyền thông thường sẽ trở nên rõ ràng. So sánh 755 để xóa nhóm và bài viết khác hoặc 775 để giữ lại bài viết của nhóm trong khi xóa bài viết khác. Những chuyển đổi thực tế này tiết lộ bề mặt truy cập của từng ứng viên mà không cần chọn chế độ cho chủ sở hữu, quy trình hoặc khối lượng công việc không xác định.

Giải quyết danh tính và quyền sở hữu bên ngoài trình duyệt, sau đó chỉ xác minh các bit dự định. Xác nhận rằng văn bản bát phân, ký hiệu, tóm tắt và các hộp kiểm đều đồng ý bằng cách sử dụng phần giải thích về tệp hoặc thư mục thích hợp. Trang này từ chối dữ liệu nhập không đúng định dạng nhưng không chạy chmod cũng như không xác định được sự thỏa hiệp. Quyết định cấp phép cuối cùng thuộc về môi trường được kiểm tra.