错误:创建状态文件/ var / lib / logrotate / status时出错:权限被拒绝

时间:2012-05-25 21:19:57

标签: ubuntu logrotate

尝试使用logrotate,当我在logrotate.d中运行特定定义的日志循环脚本时,我收到以下错误。

error: error creating state file /var/lib/logrotate/status: Permission denied

/var/lib/logrotate$ ls -lah
total 12K
drwxr-xr-x  2 root root 4.0K 2012-05-11 06:25 .
drwxr-xr-x 43 root root 4.0K 2012-05-18 08:07 ..
-rw-r--r--  1 root root  911 2012-05-25 06:25 status

我没有触及那条路,所以我想知道为什么它会在默认情况下产生错误......

3 个答案:

答案 0 :(得分:30)

不要 chmod默认状态文件为 666 。如果您chmod,系统中的每个用户都可以使用logrotate作为攻击媒介。

只需为您的用户定义一个(私有)状态文件(假设您尝试以常规用户身份运行),并使用选项[-s|--state file]

答案 1 :(得分:2)

您确定以root身份运行此命令吗? ;) 我请检查系统上是否有AppArmour - 如果是,请检查它的配置或卸载它(Ubuntu案例)。

答案 2 :(得分:1)

crontab中有这一行:

*  *  *  *  *   root    logrotate -s /var/run/logrotate.status /etc/logrotate.conf

即使它以root身份运行,我也无法摆脱“错误:创建状态文件错误/ var / run / logrotate / status:Permission denied”错误。

所以我只使用了另一个目录:

*  *  *  *  *    root    /usr/sbin/logrotate -s /var/log/logrotate.status -v /etc/logrotate.conf >/tmp/logrotate.out 2>&1

使用了来自https://serverfault.com/questions/762587/daily-logrotate-error-creating-unique-temp-file-permission-denied的调试思想,但改变了它,因此输出文件不会无限增长,这将具有讽刺意味。

详细模式在这种情况下没有提供任何附加信息,顺便说一下,它正在读取哪个配置文件以及相同的错误消息。但最好是在该文件上输出而不是在/ var / mailspool中。