logrotate 的 create 指令需配置为 create 640 root:auditgrp 以使新日志属主 root、属组 auditgrp,前提为组存在且运行用户有权限;测试用 sudo logrotate -vf 并 ls -l 验证。

要在 Linux 中利用 logrotate 的 create 指令让新日志文件归属于审计专用的受限组(比如 auditgrp),关键在于正确配置 create 后的权限、属主和属组参数,并确保目标组存在、运行 logrotate 的用户有权限设置该属组。
确认审计组已存在且日志轮转用户可归属
Logrotate 默认以 root 身份运行(尤其在系统级配置中),因此能自由设置任意属组。但若在非 root 场景下(如普通用户 crontab 调用),需确保该用户属于目标审计组:
- 检查组是否存在:
getent group auditgrp - 若不存在,由 root 创建:
sudo groupadd -r auditgrp - 若非 root 运行 logrotate,需将用户加入该组:
sudo usermod -aG auditgrp $USER,并重新登录生效
在 logrotate 配置中正确使用 create 指令
create 指令语法为:create mode owner:group 或 create mode owner group。推荐使用 owner:group 格式(更清晰,logrotate 7.0+ 原生支持):
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 示例配置片段(如
/etc/logrotate.d/auditd-custom):
/var/log/audit/custom.log {
daily
missingok
rotate 30
compress
delaycompress
sharedscripts
postrotate
/bin/systemctl kill --signal=SIGHUP auditd 2>/dev/null || true
endscript
create 640 root:auditgrp
}
其中 640 表示所有者可读写、组可读、其他无权限;root:auditgrp 明确指定新文件属主为 root、属组为 auditgrp。
验证与排错要点
配置后务必测试并确认效果:
- 手动触发轮转并检查:
sudo logrotate -vf /etc/logrotate.d/auditd-custom - 查看新建日志文件:
ls -l /var/log/audit/custom.log*,确认新文件(如custom.log.1)属组为auditgrp,权限匹配640 - 若属组未生效,常见原因:配置文件语法错误(如冒号前后空格不合法)、logrotate 版本过低(owner:group 格式,需改用
create 640 root auditgrp)、SELinux/AppArmor 限制(临时设为 permissive 模式排查)
配合组权限实现审计流程闭环
仅设置属组还不够,需配套保障审计人员能安全访问:
- 确保
auditgrp成员对日志目录有执行(x)权限(否则无法cd或遍历):sudo chmod g+x /var/log/audit/ - 建议目录属组也设为
auditgrp并启用 setgid:sudo chgrp auditgrp /var/log/audit/ && sudo chmod g+s /var/log/audit/,使后续新建文件自动继承该组 - 避免依赖 umask ——
create指令会绕过 umask,直接按指定 mode 创建,因此权限必须显式写全

















