在 CentOS(以及一般的 Linux)里,spool 目录通常指 /var/spool 下的各类子目录,比如:
/var/spool/mail(邮件)/var/spool/cron(定时任务)/var/spool/lpd(打印)/var/spool/postfix下面按常见场景说明权限怎么设。
CentOS 默认权限一般已经是对的,不要随意 chmod 777。
查看权限:
ls -ld /var/spool
ls -ld /var/spool/mail
ls -ld /var/spool/cron
典型权限:
/var/spool 755 root:root
/var/spool/mail 1777 root:mail
/var/spool/cron 700 root:root
✅ 正常情况:不要改
如果邮件无法接收,通常是:
chmod 1777 /var/spool/mail
chown root:mail /var/spool/mail
1777 中的 1 是 sticky bit,防止用户删别人邮件。
ls -ld /var/spool/cron
# 应为
drwx------ root root
如果用户 crontab 不生效:
chown root:root /var/spool/cron
chmod 700 /var/spool/cron
用户文件:
/var/spool/cron/username
应为:
-rw------- username
修复示例:
chown username:username /var/spool/cron/username
chmod 600 /var/spool/cron/username
假设:
/var/spool/myprogram
推荐做法:
mkdir -p /var/spool/myprogram
chown appuser:appuser /var/spool/myprogram
chmod 750 /var/spool/myprogram
如果是多用户写:
chmod 1770 /var/spool/myprogram
即使权限对,也可能被 SELinux 拦:
查看:
ls -Z /var/spool
如果是自定义目录:
semanage fcontext -a -t var_spool_t "/var/spool/myprogram(/.*)?"
restorecon -Rv /var/spool/myprogram
namei -l /var/spool/mail
ls -ld /var/spool/*
getenforce
如果你能告诉我:
我可以给你精确权限命令。