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

Der*_*ley 3 linux file-permissions logrotate chmod permission-denied

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

/var/log/myapp.log {
daily
missingok
create 0660 root utmp
rotate 1
}
Run Code Online (Sandbox Code Playgroud)

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

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

/bin/bash: /var/log/myapp.log: Permission denied
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*ery 5

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

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

create 0660 root utmp
Run Code Online (Sandbox Code Playgroud)

是错误的,因为这是要求logrotate创建一个新的myapp.log(它旋转原件后myapp.log,以myapp.log.0与权限)0660由用户拥有root和组utmp.用应用程序所需的属性替换它们应该可以解决问题.