Linux日志服务器需用ACL精细化管控目录权限,先检查文件系统是否启用acl挂载选项,再验证getfacl/setfacl可用性;重点审计/var/log及其子目录,清理冗余ACL,慎用default ACL;按最小权限原则为关键用户配置显式读写执行权限,并建立每日快照比对与季度人工复核机制。

Linux日志服务器的目录权限若仅依赖传统UGO(用户/组/其他)模型,容易因共享账户、多角色协作或临时提权操作导致越权访问。ACL(Access Control List)可精细化控制单个用户或组对特定日志目录的读写执行权限,是安全审计中不可忽视的一环。
确认ACL是否启用并验证基础支持
并非所有文件系统默认启用ACL。需先检查挂载选项:
- 运行 mount | grep "$(df . | tail -1 | awk '{print $1}')" ,确认输出含 acl(如 rw,relatime,acl);若无,需在 /etc/fstab 中为对应分区添加 acl 参数并重新挂载
- 测试ACL命令可用性:执行 getfacl /var/log 和 setfacl -m u:audituser:r-x /var/log,不报错说明工具就绪
识别高风险日志目录并清理冗余ACL规则
重点审计 /var/log 及其子目录(如 /var/log/apache2、/var/log/audit),避免“权限继承泛滥”:
- 用 find /var/log -type d -exec getfacl {} \; 2>/dev/null | grep -E "^\s*#|user:|group:" | head -20 快速列出含自定义ACL的目录及其规则
- 删除无效规则:setfacl -x u:olduser /var/log/nginx;清空全部ACL(保留基础UGO):setfacl -b /var/log/sa
- 警惕 default ACL(如 default:user:logadmin:rwx)——它会自动赋予新建子文件/目录权限,需确保仅在必要目录(如集中日志归档目录)设置
按最小权限原则配置关键用户ACL
不依赖将用户加入 syslog 或 adm 组,而是显式授权:
- 审计员仅需读取:setfacl -m u:auditor:r-x /var/log/secure
- 应用运维需追加日志但不可删改:setfacl -m u:appops:rw- /var/log/app/ + setfacl -d -m u:appops:rw- /var/log/app/(default规则保障新日志文件权限)
- 禁止写入敏感目录:对 /var/log/audit/ 执行 setfacl -m u:untrusted:r-x 后,再用 chmod 750 /var/log/audit 配合,确保ACL不覆盖核心限制
建立ACL变更监控与定期复核机制
ACL修改易被忽略,需纳入运维审计闭环:
- 将 getfacl -R /var/log > /etc/log-acl-snapshot-$(date +%F).txt 加入每日cron,保留30天快照
- 用脚本比对差异:diff /etc/log-acl-snapshot-$(date -d 'yesterday' +%F).txt /etc/log-acl-snapshot-$(date +%F).txt,异常变动触发告警
- 每季度人工复核:检查是否存在 mask:: 权限过宽(如 mask::rwx)、未授权用户条目、或default ACL误设在根日志目录

















