计划任务服务收敛是什么
atd 提供一次性计划任务,常被遗忘却允许本地用户提交任务;周期任务与定时任务的访问控制由 at.allow、at.deny 与对应的 cron 文件决定。服务器上没有使用场景时直接关闭 atd,需要保留时改用白名单文件替代黑名单,避免依赖「默认允许」这种隐式策略。
基本信息
| 加固项 | 任务调度收敛 |
|---|---|
| 适用平台 | Linux(atd 与 cron) |
| 风险等级 | 低 |
| 基线 | atd 最小化运行并使用白名单 |
| 相关文件 | /etc/at.allow、/etc/at.deny 及同名 cron 文件 |
典型使用场景
- 基线核查:确认 atd 是否运行,以及系统里是否真的有人使用
- 多用户主机:用白名单限制哪些用户可提交定时任务
- 事件排查:检查是否存在来源不明的计划任务
- 应用下线:确认业务不再依赖定时任务之后再关闭服务
- 合规检查:确认计划任务有归属人并可审计
核查与处置
核查与处置
# 确认服务状态与权限文件
systemctl status atd --no-pager 2>/dev/null | head -4
ls -l /etc/at.allow /etc/at.deny 2>/dev/null
# 查看队列:普通用户只看自己的任务,root 可查看全部
atq
# 无使用场景时关闭
systemctl disable --now atd 2>/dev/null权限文件语义
| 文件状态 | 含义 | 说明 |
|---|---|---|
| at.allow 存在 | 仅列出的用户可提交任务 | 白名单优先于 at.deny |
| at.allow 为空 | 任何用户都不能提交任务 | 与文件不存在语义不同 |
| at.deny 存在 | 列出的用户被拒绝,其余允许 | 黑名单模式,新增用户默认放行 |
| 两者都不存在 | 通常仅 root 可用 | 具体以发行版手册为准 |
at.allow 存在时 at.deny 会被忽略:判断策略先看白名单文件是否存在,再看内容。
cron 的规则与 at 一致,区别只在文件名为 cron.allow 与 cron.deny,两套都要一起核查。
落地检查点
- 关闭前先确认队列为空,并与应用负责人核对是否有依赖定时任务的流程
- 需要保留时改为白名单模式,只放行确实要提交任务的账号
- 定期遍历系统任务目录与用户队列,核对每条任务的归属人与用途
- 把权限文件纳入配置基线,避免被后续变更覆盖或删除
- 与应用发布流程结合:新增计划任务时一并登记,避免无主任务长期运行