日志切割后权限变成root导致服务写不进去

老强姑娘_3733

老强姑娘_3733

2026-09-10

939人浏览

原创

logrotate的create指令必须配对服务运行身份,格式为create 640 user group,否则新日志权限不匹配导致无法写入;同时需配合postrotate重载服务句柄,并注意selinux、systemd保护机制及配置加载顺序。

日志切割后权限变成root导致服务写不进去

logrotate 的 create 指令没配对服务运行身份

日志切割后权限是 root:root,但你的服务(比如 nginxmyapp)是以非 root 用户(如 www-datamyuser)运行的,新日志文件一创建就无法写入——这是最常见原因。logrotate 默认不创建新文件,也不改权限;一旦你加了 create 却只写了 644 或漏掉属主属组,就会继承默认行为或 fallback 到 root:root

  • create 必须带三个参数:create 640 myuser mygroup,顺序不能错:权限、属主、属组
  • 属主必须和进程实际运行用户一致(查法:ps -o user,comm -C nginxsystemctl show --property=User nginx.service
  • 若服务用 systemd 管理且未显式设 User=,默认以 root 运行,此时 create 640 root root 是安全的;但多数 Web 服务已明确降权,不能照搬
  • 权限值别硬套 644:640 表示属主可读写、属组可读、其他不可访问,既保安全又允运维组(如 adm)分析日志

服务没收到轮转通知,还在往旧文件句柄写

即使 create 配对了,如果服务没重载日志文件句柄,它会继续往已被重命名的旧文件(如 app.log.1)里追加——看起来“新日志空着”,其实是写偏了。这不是权限问题,而是信号没发到位。

  • 确认配置中是否含 postrotate + endscript 块,且里面调用了正确 reload 命令
  • 常见错误写法:/bin/kill -USR1 `cat /var/run/nginx.pid` ——但 Nginx 在 systemd 下推荐用 systemctl kill --signal=USR1 nginx 或直接 systemctl reload nginx
  • 避免在 postrotate 中用 service nginx reload:某些发行版该命令不触发真正的 reload,只是 restart
  • sharedscripts:多个日志路径共用同一份 postrotate 脚本时必需,否则每个路径都单独执行一遍,可能重复发信号

SELinux 或 systemd 的上下文覆盖了 logrotate 权限

尤其在 RHEL/CentOS/Fedora 上,即使 create 640 myuser mygroup 生效了,新日志文件也可能被 SELinux 自动打上错误类型(如 admin_home_t),导致服务因策略拒绝写入;systemd 服务若启用了 ProtectSystem=ReadOnlyPaths=,也会拦截写操作。

Visla
Visla

一款集AI视频生成、录制和编辑能力于一体的视频创作平台,帮助用户从文字或想法快速制作适合工作与传播的视频内容。

下载
  • 检查上下文:ls -Z /var/log/myapp/app.log,正常应为 system_u:object_r:var_log_t:s0
  • 临时修复:sudo restorecon -v /var/log/myapp/app.log;长期方案是在 logrotate 配置末尾加 prerotate 执行 restorecon
  • 查 systemd 限制:systemctl show --property=ProtectSystem,ReadOnlyPaths myapp.service,若返回 strict 或含 /var/log,需调整 service 文件
  • 不要关 SELinux:用 ausearch -m avc -ts recent | audit2why 定位具体拒绝项,再用 audit2allow 生成策略

配置被其他文件覆盖或未生效

logrotate 加载顺序是:先读 /etc/logrotate.conf,再按字母序加载 /etc/logrotate.d/*。如果你的服务配置在 /etc/logrotate.d/myapp,但 /etc/logrotate.conf 里有全局 create,它会覆盖掉你本地的设置——而且不会报错。

  • 运行 logrotate -d /etc/logrotate.conf(debug 模式)看实际解析出的 create 值是什么
  • 在服务专属配置里显式写全 create,不要依赖全局配置
  • 确保文件名不带点或波浪线(如 myapp.conf~),logrotate 会跳过它们
  • 检查 cron 是否真在跑:systemctl status crongrep logrotate /var/log/syslog

真正卡住人的地方,往往不是 create 少写了哪个参数,而是服务身份、信号通知、安全模块、配置加载这四层之间存在隐性耦合——改完一行配置,得同步验证三处状态才敢说修好了。

相关专题

更多
Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

2026.09.21

0

12

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

20

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

2026.09.16

200

9

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

2026.09.16

100

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚观Linux入门视频教程
尚观Linux入门视频教程

共22课时 | 5.3万人学习

尚观Linux初级视频教程
尚观Linux初级视频教程

共21课时 | 4.9万人学习

Linux入门级实战课程
Linux入门级实战课程

共10课时 | 1.5万人学习