logrotate表示在旋转日志/重新创建日志文件时拒绝权限

时间:2011-06-01 21:07:42

标签: linux file-permissions chmod permission-denied logrotate

我是新手在Linux机器上进行logrotate ...这是我在我的应用程序的logrotate.d文件中设置的内容:

/var/log/myapp.log {
daily
missingok
create 0660 root utmp
rotate 1
}

我在myapp.log文件中为运行相关应用程序的帐户设置了所有者权限,使用chmod直接从bash shell运行。

当应用程序第一次运行时,一切都很好。它记录得很好,一切都很好。但是当日志被轮换时,它会删除日志文件,然后尝试重新创建日志文件,并且它会给出一个权限被拒绝的错误:

/bin/bash: /var/log/myapp.log: Permission denied

我知道我在使用logrotate配置文件或chmod或其他东西时出错了...有人能指出我正确的方向并帮我解决问题吗?

1 个答案:

答案 0 :(得分:5)

  

我在myapp.log文件中为运行相关应用程序的帐户设置了所有者权限,使用chmod直接从bash shell。

...所以除非"运行相关应用程序的帐户"是root,配置选项

create 0660 root utmp

是错误的,因为这要求logrotate使用权限myapp.log创建新的myapp.log(在将原始myapp.log.0轮换为0660之后)由用户root和群组utmp拥有。用应用程序所需的属性替换它们可以解决问题。