首页/安全/应急响应速查/检查 cron.hourly 等目录与 anacron

检查 cron.hourly 等目录与 anacron

/etc/cron.hourly、daily、weekly、monthly 是脚本目录,与 anacron 组合运行,是放一个脚本就长期执行的便捷入口。

应急响应速查安全更新于 2026-10-13

脚本目录与 anacron

/etc/cron.hourly、daily、weekly、monthly 是「放脚本即执行」的目录:由 run-parts 按周期执行其中所有带可执行位的文件,anacron 负责把关机期间错过的任务在下次开机后补跑。攻击者只要丢一个脚本进去,就获得长期、无需用户 crontab 的执行能力。

为什么必须单独查

这些目录属于系统级入口,不体现在任何用户的 crontab -l 里。很多巡检只查用户 crontab,结果整片漏掉;而这些脚本以 root 运行,权限比用户任务更高。

基本信息

目录/etc/cron.hourly、daily、weekly、monthly
执行者run-parts(按周期遍历执行)
补跑机制anacron 读 /etc/anacrontab,开机后补未执行任务
执行身份root,脚本需带可执行位才会被执行
归属核对rpm -qf / dpkg -S 判断脚本来自哪个软件包
适用平台RHEL/CentOS 与 Debian/Ubuntu 通用

典型使用场景

  • 排查「没有 crontab 却有周期性行为」的执行来源
  • 核对系统自带维护脚本是否被追加了额外命令
  • 检查第三方软件安装时留下的脚本
  • 结合 cron 日志还原某个时间点实际执行了什么
  • 事件收尾时确认目录内容与软件包构成一致

检查脚本目录与 anacron

检查脚本目录与 anacron
ls -la /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
cat /etc/anacrontab
grep -rEn 'curl|wget|base64|/dev/tcp|nc ' /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly 2>/dev/null
rpm -qf /etc/cron.daily/* 2>/dev/null | sort -u     # 判断脚本归属(Debian 系用 dpkg -S)
stat -c '%n %a %y' /etc/cron.daily/* | head -n 20

输出逐列读法

检查项含义正常/异常
目录内文件存在的脚本清单非软件包安装的脚本必须能解释来源
权限位是否会被 run-parts 执行无可执行位的脚本不会运行
anacrontab 行任务名、间隔、延迟、命令出现自定义命令属高价值线索
归属查询脚本所属软件包提示不属于任何包时需重点核查
anacron 是补跑机制:任务在关机期间错过也会在下次开机后执行,因此不能用「当时机器没开机」排除某个脚本。
这些脚本以 root 运行且不进用户 crontab;只查 crontab -l 会整片漏掉,必须把四个目录与 /etc/cron.d 一起过。

核对执行历史

核对执行历史
grep -ai 'cron.hourly\|cron.daily' /var/log/cron 2>/dev/null | tail -n 20
journalctl -u crond --since "2026-10-01" --no-pager | head -n 30
ls -la /var/spool/anacron 2>/dev/null    # anacron 记录上次运行时间戳

清理前要先做的事

  • 把脚本内容与时间戳复制到证据目录
  • 记录脚本引用的外部地址与落地文件路径
  • 用归属查询确认是否为软件包自带脚本
  • 确认对应的守护进程与网络行为,再决定删除顺序

易错点

  • 只查 crontab -l:系统级脚本目录与 /etc/cron.d 完全不在视野内
  • 认为每天只跑一次就安全:脚本内部一样可以拉起常驻进程
  • 忽略 anacron:错过的任务会在开机后补跑,时间线因此错位
  • 只列文件名不看内容:脚本内容与执行时间才是判据
  • 未核对归属就删除:误删软件包自带的维护脚本会导致系统任务缺失

数据来源与参考

  • anacron(8) 手册
  • Debian cron 包文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌