Công cụ dành cho nhà phát triển · Máy tính Chmod
Tìm các tệp có thể ghi trên thế giới và các tệp nhị phân setuid bằng find -perm
· Tại sao nó quan trọng
chmod unix access-control
Hai mẫu quyền gây ra nhiều sự cố thực tế: các tệp mà bất kỳ ai cũng có thể thay đổi và các chương trình chạy bằng quyền root. Bài đăng này cho biết cách tìm cả hai bằng find -perm và những gì cần làm với chúng.
Người đánh giá yêu cầu danh sách mà bạn không có - người dùng nào có thể sửa đổi tệp nào và chương trình nào nâng cao đặc quyền khi chạy
Quá trình xem xét quyền thường bắt đầu bằng các chế độ đã được thu thập ở nơi khác: có thể là 0002, 4000, 2000 hoặc một giá trị hoàn chỉnh như 4755. Máy tính có thể giải mã những con số đó thành chủ sở hữu, nhóm và các quyền khác, bao gồm cả ba bit đặc biệt. Nó không tìm kiếm các thư mục, kiểm tra các tệp nhị phân hoặc tạo ra một bản kiểm kê các đường dẫn.
Hãy coi mọi chế độ được cung cấp như một mô tả về các bit chứ không phải một phán quyết về một tệp. Nhập nó, so sánh trường bát phân với ma trận hộp kiểm và hiển thị ký hiệu, sau đó ghi lại những gì đã thay đổi. Quyền sở hữu, ACL mục nhập, khả năng và danh tính của bất kỳ quy trình nào sử dụng đường dẫn vẫn là dữ kiện cần thu thập từ môi trường thực tế.
Có thể ghi trên thế giới có nghĩa là lớp khác có w - mẫu bát phân 0002 và tại sao -perm -0002 lại tìm thấy nó bất kể các bit khác
Giá trị 0002 tách biệt bit ghi khác. Trong bố cục ba lớp thông thường, chữ số cuối cùng thuộc về tất cả mọi người bên ngoài lớp chủ sở hữu và nhóm và thành phần ghi của nó có trọng số 2. Do đó, một chế độ hoàn chỉnh chứa bit đó sẽ hiển thị w trong lớp khác, mặc dù máy tính không tự xác định vị trí các chế độ đó.
Việc một biểu thức tìm kiếm cụ thể có nghĩa là kết quả khớp chính xác, toàn bộ bit hay bất kỳ bit nào đều thuộc về tài liệu tìm kiếm chứ không phải trình chuyển đổi này. Thay vào đó, hãy cung cấp một chế độ kết quả. Ví dụ: 0666 trở thành rw-rw-rw-, trong khi 0644 trở thành rw-r--r--; sự khác biệt có thể nhìn thấy trong nhóm và các vị trí ghi khác mà không ngụ ý rằng một trong hai chế độ phù hợp với một đường dẫn cụ thể.
0002 hiển thị bit ghi khác; tìm ngữ nghĩa phù hợp là bên ngoài
Chữ số bit đặc biệt hàng đầu sử dụng 4 cho setuid và 2 cho setgid. Do đó 4755 kết hợp setuid với các quyền 755 thông thường, trong khi 2755 kết hợp setgid với cùng các bit ở cuối. Máy tính hiển thị các mặt nạ đó một cách riêng biệt và đặt các chữ cái tượng trưng của chúng vào vị trí thực thi của chủ sở hữu hoặc nhóm khi hiển thị chế độ đầy đủ.
Vụ án mang theo bằng chứng hữu ích. Nếu setuid đi kèm với việc thực thi của chủ sở hữu, thì vị trí thực thi của chủ sở hữu sẽ hiển thị s; không thực thi, nó sẽ hiển thị S. Setgid tuân theo quy tắc tương tự ở vị trí nhóm. Các đầu ra này giải mã một số nguyên được cung cấp, nhưng chúng không kiểm tra chương trình, xác định chủ sở hữu của nó, chạy nó hoặc quyết định xem một bit đặc biệt có hợp lý hay không.
4000 và 2000 giải mã dưới dạng setuid và setgid mà không cần kiểm tra các tệp nhị phân
Cú pháp tìm kiếm quyền phải được tách biệt khỏi số học quyền. Máy tính chấp nhận chế độ ký hiệu bát phân hoặc chín ký tự và trả về một giá trị 12 bit. Nó không có đại diện cho toán tử tìm kiếm, vị từ đường dẫn hoặc quy tắc khớp, do đó, không thể phân biệt truy vấn chế độ chính xác và truy vấn tất cả các bit bắt buộc trong giao diện này.
Giải mã chế độ từ mỗi kết quả tìm kiếm bên ngoài thay vì dán biểu thức tìm kiếm. Ba chữ số thông thường ánh xạ tới chủ sở hữu, nhóm và người khác, trong khi chữ số hàng đầu tùy chọn ánh xạ tới setuid, setgid và Sticky. Quy trình công việc này xác minh các bit được báo cáo nhưng để lại phạm vi tìm kiếm và ngữ nghĩa phù hợp cho công cụ tạo danh sách.
Các chế độ tìm chính xác, tất cả bit và bất kỳ bit nào cần tìm tài liệu
Giả sử một cuộc kiểm tra được thực hiện ở nơi khác báo cáo 0666 và 4755. Nhập 0666 mang lại rw-rw-rw-, hiển thị ghi khác trong bộ ba cuối cùng. Việc nhập 4755 mang lại rwsr-xr-x: chủ sở hữu đã đọc, ghi và thực thi và setuid thay thế ký tự thực thi của chủ sở hữu bằng chữ thường vì bit thực thi đó hiện diện.
Lần truy cập thứ hai, chẳng hạn như 4644 chứng tỏ tại sao hình thức biểu tượng lại quan trọng. Nó hiển thị rwSr--r--, với chữ S viết hoa hiển thị setuid trong khi chủ sở hữu không thực thi. Máy tính có thể làm cho sự mâu thuẫn đó trở nên dễ thấy. Nó vẫn không thể xác định đường dẫn, xác định ai sở hữu nó, kiểm tra nội dung của nó hoặc đề xuất loại bỏ bit.
Ví dụ đã hoạt động: giải mã các lần truy cập kiểm tra được cung cấp mà không cần quét đường dẫn
Không tự động sửa chữa mọi chế độ bất thường. Chế độ chỉ là một đầu vào cho một quyết định và nó còn phụ thuộc vào mục tiêu, chủ sở hữu, nhóm và hoạt động được yêu cầu. Trang này cố tình không nhận được bối cảnh đó. Bản xem trước lệnh của nó là văn bản trơ và ngay cả đường dẫn được trích dẫn chính xác cũng không được trình duyệt mở hoặc kiểm tra.
Trước khi thay đổi chế độ được báo cáo, hãy so sánh giá trị hiện tại và giá trị đề xuất từng bit một. Xóa ghi khác khỏi 0666 tạo ra 0664; xóa setuid khỏi 4755 tạo ra 0755. Các số liệu số học đó có thể tái tạo được nhưng liệu thay đổi nào có duy trì được khối lượng công việc hay không thì cần có bằng chứng cục bộ ngoài máy tính và ngoài hướng dẫn bit thông thường của bài viết 501.
Các trường hợp ngoại lệ và cách khắc phục yêu cầu bằng chứng về quyền sở hữu và khối lượng công việc của địa phương
Một số khía cạnh kiểm toán có liên quan không có. Tuyến đường không truy vấn các mục ACL, khả năng của tệp, quyền sở hữu, các thành phần đường dẫn có thể ghi, hành vi gắn kết hoặc chính sách bắt buộc. Nó cũng không thực hiện tìm kiếm, kiểm tra PATH hoặc duyệt qua bộ nhớ. Do đó, một chuyển đổi rõ ràng chỉ cho biết số được cung cấp và các chữ cái hiển thị khớp nhau.
Giữ những ranh giới đó hiển thị trong bất kỳ báo cáo nào. Ghi lại đường dẫn và phương thức thu thập bên cạnh chế độ giải mã, sau đó điều tra danh tính và cơ chế truy cập bổ sung bằng các công cụ bên ngoài thích hợp. Máy tính có giá trị như một công cụ kiểm tra ký hiệu vì nó từ chối các chữ số bát phân không hợp lệ và hiển thị các bit đặc biệt; nó không phải là một máy quét hệ thống tệp hoặc công cụ khắc phục.
Bài học rút ra: biết các tệp có thể ghi và đặc quyền của bạn — đồng thời sử dụng máy tính Chmod để dịch từng chế độ đáng ngờ trước khi bạn thay đổi nó
Việc kiểm tra quyền hữu ích sẽ tách biệt việc khám phá khỏi việc diễn giải. Hãy để một quy trình được ghi lại, bên ngoài thu thập các đường dẫn ứng cử viên, sau đó sử dụng máy tính để chuyển từng chế độ được trả về thành các quyền rõ ràng của lớp. Kiểm tra chữ số bit đặc biệt tùy chọn cẩn thận như ba chữ số ở cuối, vì 0755, 2755 và 4755 chia sẻ các quyền thông thường nhưng mô tả các giá trị 12 bit khác nhau.
Kết thúc bằng một kết luận hẹp: chế độ được cung cấp chứa chủ sở hữu, nhóm, khác và các bit đặc biệt. Đừng biến số học đó thành một tuyên bố không được hỗ trợ về mức độ tiếp xúc hoặc chính sách bắt buộc. Máy tính giúp người đánh giá đọc các chế độ đáng ngờ một cách chính xác; hệ thống trực tiếp phải cung cấp quyền sở hữu, khối lượng công việc và bằng chứng thực thi trước khi bất kỳ ai thay đổi chúng.