Công cụ dành cho nhà phát triển · Trình tạo Crontab
Root crontab so với crontab của người dùng so với /etc/cron.d: đặc quyền tối thiểu cho công việc
· Tại sao nó quan trọng
cron quyền developer-workflow
Cron cung cấp cho bạn một số nơi để đặt công việc và sự lựa chọn sẽ quyết định ai điều hành nó và ai có thể thay đổi nó. Bài đăng này giải thích các vị trí, trường người dùng và cách chạy các công việc có ít đặc quyền nhất mà có thể hoạt động được.
Đặc quyền không được thể hiện trong biểu thức ToolAcre tạo ra
Không có gì trong `15 8 * * 1-5` nói đến quyền root, tài khoản dịch vụ hoặc người đã tạo ra nó. Năm vị trí mã hóa phút, giờ, ngày trong tháng, tháng và ngày trong tuần. ToolAcre không có bộ chọn tài khoản thứ sáu và không thể quyết định danh tính nào sẽ thực thi lệnh trong tương lai.
Sự vắng mặt đó ngăn cản việc đưa đặc quyền vào quá trình đánh giá thời gian. Xác thực các ngày trong tuần tại 08:15 trong trình tạo, sau đó chọn bối cảnh cài đặt riêng. Một đoạn lịch chính xác có thể được sử dụng lại trong các tài khoản khác nhau, trong khi quyết định về quyền phụ thuộc vào tài nguyên mà trình duyệt không thể kiểm tra.
Quyền sở hữu thực thi và lưu trữ crontab của người dùng là bằng chứng bên ngoài kho lưu trữ
Sổ làm việc mô tả các lệnh crontab của người dùng và hành vi của bộ đệm. Kho lưu trữ này không đọc thư mục bộ đệm, chạy `crontab -e` hoặc mô phỏng quyền sở hữu tài khoản. Tuyến trình duyệt của nó không thể xác minh nơi một hệ điều hành cụ thể lưu trữ các mục nhập hoặc quyền nào bảo vệ chúng.
Sử dụng tài liệu và công cụ quản trị của mục tiêu để thiết lập quyền sở hữu. Đừng suy luận rằng một dòng thuộc về người dùng trình duyệt hiện tại. ToolAcre không nhận được danh tính hệ điều hành được xác thực, do đó, bất kỳ khiếu nại nào như vậy sẽ là bối cảnh được phát minh ra chứ không phải là thuộc tính của biểu thức.
Các cột người dùng crontab và cron.d của hệ thống không được phân tích cú pháp ở đây
Một số định dạng tệp cron hoàn chỉnh thêm cột người dùng trước lệnh. Trình tạo vẫn tạo ra chính xác năm trường thời gian. Nó không bổ sung cũng như không xác thực mã thông báo tài khoản bổ sung đó. Việc dán một dòng hệ thống hoàn chỉnh vào hộp biểu thức sẽ tạo ra quá nhiều trường và không thành công.
Đây là ranh giới định dạng kèm theo các hậu quả về bảo mật. Việc xóa mã thông báo không quen thuộc chỉ để đáp ứng trình xác thực năm trường có thể thay đổi người thực hiện công việc khi dòng được lắp ráp lại không chính xác. Trước tiên, hãy xác định định dạng đích, sau đó đặt tiền tố lịch trình của ToolAcre vào các cột thích hợp mà không yêu cầu xác nhận phần còn lại.
Các thư mục định kỳ và hệ thống dây điện anacron không được lập mô hình
Các thư mục định kỳ như cơ chế hàng giờ hoặc hàng ngày không được biểu thị bằng biểu thức năm trường trong quá trình triển khai này. Không có quá trình quét thư mục, hoạt động của các bộ phận đang chạy hoặc chuyển giao sang bộ lập lịch khác xuất hiện trong nguồn. Trình tạo không thể so sánh các lựa chọn đó với một dòng cron rõ ràng.
Khi một mục tiêu đưa ra các cơ chế như vậy, hãy đánh giá chúng thông qua tài liệu của chính mục tiêu đó. ToolAcre vẫn có thể áp dụng cho các mục thực sự sử dụng ngữ pháp được hỗ trợ. Lịch trình đặt trước có tên “Hàng ngày vào lúc nửa đêm” vẫn là một biểu thức, không phải là bằng chứng cho thấy thư mục hàng ngày của máy chủ sẽ chạy vào thời điểm đó.
Đặc quyền tối thiểu là quyết định triển khai ngoài cú pháp lịch trình
Đặc quyền tối thiểu yêu cầu phải biết tệp, dịch vụ và thông tin xác thực nào mà hành động cần. Trình phân tích cú pháp không có thông tin đó. Nó không thể đề xuất root, tạo tài khoản chuyên dụng hoặc xác minh quyền sở hữu tập lệnh. Những biện pháp kiểm soát đó cần được xem xét trước khi cài đặt, không được suy ra từ tần suất.
Giữ bản ghi quyết định đặc quyền bên cạnh lệnh: yêu cầu đọc, ghi, truy cập mạng và ranh giới leo thang. Giữ bản ghi lịch trình bên cạnh: cách diễn đạt, mục đích và vùng bằng ngôn ngữ đơn giản. Việc chia tách các thành phần lạ đó giúp hiển thị quá trình thực thi có đặc quyền cao mà không làm thay đổi ngữ nghĩa của lịch.
Ranh giới đã làm việc: tạo năm trường mà không cần tạo cột tài khoản
Giả sử báo cáo sẽ chạy ở 08:15 vào các ngày trong tuần. ToolAcre tạo hoặc xác thực `15 8 * * 1-5`, mô tả từ Thứ Hai đến Thứ Sáu và liệt kê các ngày sắp tới. Dừng lại ở đó. Không thêm tên người dùng bên trong biểu thức hoặc gọi phần mã thông báo thứ sáu trong phương ngữ của trình phân tích cú pháp này.
Khi tập hợp tệp mục tiêu cuối cùng, hãy làm theo bố cục cột đã được xác minh của nó và kiểm tra trong tài khoản dự định bằng một hành động vô hại. Nút sao chép của trình tạo có thể cung cấp một biểu thức hoặc một dòng giữ chỗ, nhưng trình giữ chỗ không phải là đề xuất ủy quyền và phải được thay thế một cách có chủ ý.
Chính sách truy cập và nhãn bảo mật vẫn bị bỏ qua
Các chính sách cho phép và từ chối, các biện pháp kiểm soát truy cập bắt buộc và hệ thống nhãn tệp cũng không có trong kho lưu trữ. Lịch trình có thể xác thực trong khi chính sách chặn việc cài đặt hoặc thực thi nó. ToolAcre không có tín hiệu nào cho những quyết định bên ngoài đó và không được ngụ ý khác.
Do đó, việc xem xét bảo mật phải diễn ra ở nơi có danh tính và tài nguyên. Báo cáo lỗi bằng bằng chứng phía mục tiêu thay vì sửa đổi các trường cho đến khi có điều gì đó xảy ra. Ngữ pháp thời gian, định dạng tệp và chính sách đặc quyền là ba lớp; một trình xác nhận trình duyệt chỉ bao gồm trình xác thực đầu tiên.
Bài học rút ra: đặt công việc ở nơi có đặc quyền - và trình tạo sẽ cung cấp cho bạn năm trường để đặt tiền tố cho bất kỳ tệp nào bạn chọn
Biểu thức cron năm trường trả lời khi nào. Nó không trả lời ai. Số trường nghiêm ngặt của ToolAcre bảo vệ ranh giới đó và giúp ngăn các cột tài khoản bị nhầm lẫn trong giây hoặc ngược lại. Giữ nguyên sự khác biệt bất cứ khi nào di chuyển lịch giữa các định dạng tệp.
Tạo tiền tố thời gian, chọn đích đến được ghi lại và áp dụng đặc quyền tối thiểu dựa trên nhu cầu thực sự của hành động. Trình duyệt có thể làm cho mục đích lịch có thể được xem xét; quản trị viên vẫn chịu trách nhiệm về danh tính, quyền và cài đặt. Đó là phạm vi trung thực của hiện vật.