Linux配置cron、at的安全性

指定允许或者拒绝的账号使用cron和at

创建对应文件:

白名单:
/etc/cron.allow
/etc/at.allow

黑名单:
/etc/cron.deny
/etc/at.deny

注意:

  1. 当 allow 文件存在时:
    只有明确列在文件中的用户 能使用对应命令(crontab 或 at),其他所有用户(包括普通用户)均被拒绝。
    若文件中仅包含 root,则 只有 root 可用,其他用户均被禁止。
    若文件存在但是为空,则 所有用户(含 root)均被拒绝(需避免此配置)。
    如果不需要使用白名单,建议删除.allow 文件

  2. 当 allow 文件不存在时:
    系统转而检查 deny 文件(如 /etc/cron.deny),此时逻辑变为:
    未被列在 deny 文件中的用户默认允许使用(宽松策略)。

如果白名单存在会优先使用白名单,而黑名单会被忽略,如果需要使用黑名单,就需要删除白名单文件

文件权限与格式要求

权限必须为 600:意思就是只能是所属用户 可读可写
touch /etc/cron.allow   # 创建文件
touch /etc/at.allow 

chmod 600 /etc/cron.allow /etc/cron.allow    # 设置文件权限
chown root:root /etc/cron.allow /etc/cron.allow    # 修改文件所属 

chmod 600 /etc/cron.allow /etc/at.allow
chown root:root /etc/cron.allow /etc/at.allow
严格格式规范:

每行仅一个用户名,无空格/注释。如下:

root
user1
user2

系统怎么默认找到这两个文件的?

crond和at 服务在编译时直接写死了权限文件的路径, 服务启动后,会主动检查这些固定路径是否存在,而非动态查找

  1. 检查顺序:
    当用户执行 crontab 命令时,crond 服务按以下顺序判断权限:
    若 /etc/cron.allow 存在 → 仅允许文件中列出的用户。
    若 /etc/cron.allow 不存在 → 检查 /etc/cron.deny,拒绝文件中列出的用户。
    at同上
posted @ 2026-05-15 15:50  沙漠的一只雕  阅读(46)  评论(0)    收藏  举报