我有一个装满日志文件的文件夹,我使用logrotate来旋转它们。
直到最近,我只有Apache日志文件在那里- access.log和error.log。我从守护进程daemon.log中添加了一个新的日志。守护进程日志是由在www-data用户下运行的守护进程编写的。
运行时,logrotate将创建一个新日志,其权限为640、用户root和组adm。Apache可以用这些权限写入访问日志和错误日志,但是我的守护进程以www-data的形式运行,却不能。
在我看来,有几种选择:
logrotate配置,以手动指定授予哪些日志文件哪些权限。但是这意味着如果我添加了一个新的日志文件,我需要记住配置logrotate来管理它。logrotate脚本,为daemon.log文件创建异常。这可能吗?logrotate脚本来管理该新文件夹中的日志文件。很简单,但如果可以的话,我想把所有的日志都放在一起。logrotate以创建不同用户和组下的文件。看来这会冒着丢失日志信息的风险。www-data用户添加到adm组,并将权限设置为660。我不喜欢让www-data用户无意中访问其他东西的想法。666。似乎是个粗糙的解决方案。所有这些都不是理想的,而且我敢肯定一对夫妇是可怕的。还有别的选择吗,还是我最好的选择之一?我是不是遗漏了什么?
发布于 2017-12-04 08:12:13
标准的答案是,使log旋转式创建具有进程写入它们所需的所有权的文件。(我不明白为什么会有丢失日志信息的风险;也许你可以详细说明为什么你认为这是一种风险。)
通过添加行来实现这一点。
create owner group到相关的log旋转式配置。如果您想拥有具有特定权限的文件,则需要添加
create mode owner group而不是。
示例:
create 644 www-data www-datahttps://serverfault.com/questions/886250
复制相似问题