新手配置linux定时任务审计需守住“谁在跑、跑什么、在哪跑、有没有人知道”四条线,核心是摸清底数、启用执行日志、堵住三大漏洞、每日简易审计。

新手配置Linux定时任务审计,核心不是堆功能,而是先守住“谁在跑、跑什么、在哪跑、有没有人知道”这四条线。不求一步到位,但必须让每次任务变更可查、每次执行留痕、每个脚本来源可控。
一、先看清所有正在运行的定时任务
很多问题出在“不知道自己系统里已经有啥”。新手第一步不是加任务,而是摸清底数:
- 用 crontab -l 查看当前用户自己的任务
- 用 sudo crontab -u root -l 看 root 的任务(多数关键任务在这里)
- 用 cat /etc/crontab 看系统级主配置文件
- 用 ls /etc/cron.d/ 和 cat /etc/cron.d/* 2>/dev/null 看第三方服务加的任务
- 用 ls -l /etc/cron.hourly /etc/cron.daily 看周期性脚本目录里有哪些文件、属主是谁
二、立即启用基础执行日志
默认 cron 日志只记“任务启动了”,不记“脚本干了啥”。新手要马上补上这一环:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 编辑 /etc/rsyslog.d/50-cron.conf,加入一行:cron.* /var/log/cron.log
- 重启日志服务:sudo systemctl restart rsyslog
- 给每个你写的定时脚本开头加上记录语句,例如:
echo "$(date): START $0 $*" >> /var/log/cron-exec.log - 确保 /var/log/cron-exec.log 权限为 644,属主 root
三、堵住最常被利用的三个漏洞
90% 的恶意定时脚本靠这三类操作落地,新手配置时必须避开:
- 不用相对路径:所有命令和脚本都写绝对路径,比如 /usr/bin/python3 /home/user/backup.py,而不是 python3 backup.py
- 不许用 bash -c / sh -c / eval:这些是命令注入高危入口,cron 行里一旦出现就删掉重写
- 禁止脚本放在 /tmp、/var/tmp 或用户家目录下直接调用:把脚本统一放到 /opt/scripts/ 或 /usr/local/bin/,权限设为 640,属主 root
四、每天花两分钟做一次简易审计
不需要复杂工具,用一条命令就能发现大部分异常:
- 运行:sudo sh -c 'crontab -l; find /etc/crontab /etc/cron.d/ /etc/cron.*ly/ -type f -exec cat {} \; 2>/dev/null' | grep -E "(http|curl|wget|base64|bash -c|sh -c|eval)"
- 如果输出任何内容,说明有可疑指令,立刻停用并检查来源
- 再运行:find /tmp /var/tmp -type f -name "*.sh" -executable 2>/dev/null,发现就删——临时目录不该有可执行脚本
不复杂但容易忽略。做完这四步,你的定时任务就从“黑盒自动运行”变成了“透明可控执行”。










