Debian Crontab 安全加固清单
一 访问控制与最小权限
# /etc/cron.allow
root
deploy
backup
保存后,未被列出的用户执行 crontab -l 将提示无权限。注意:编辑这两个文件需 root 权限。二 文件与目录权限加固
chown root:root /etc/crontab
chmod 600 /etc/crontab
chown -R root:root /etc/cron.d
find /etc/cron.d -type f -exec chmod 600 {} \;
chmod 700 /etc/cron.d
chown -R root:root /var/spool/cron
chmod 700 /var/spool/cron
find /var/spool/cron -type f -exec chmod 600 {} \;
find /etc/cron* -perm -o+w -ls
find /var/spool/cron -perm -o+w -ls
三 任务配置与脚本安全
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
并确保日志目录与文件可被 cron 运行身份写入。四 日志、监控与应急响应
cron.* /var/log/cron.log
执行 systemctl restart rsyslog 后,使用 tail -f /var/log/cron.log 或 grep CRON /var/log/syslog 查看任务执行记录。crontab -l -u root
for u in $(cut -f1 -d: /etc/passwd); do echo "=== $u ==="; crontab -l -u "$u" 2>/dev/null; done
cat /etc/crontab
ls -l /etc/cron.d /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
systemctl stop cron
systemctl start cron