以非 root 用户身份 logrotate 处理具有不同所有者的文件

cra*_*raq 5 permissions logrotate

我收集了不同所有者的日志文件。每个日志文件对应于一组程序中的一个,并且权限是组可写的,因此启动程序的任何人都可以写入日志。(文件为 660,目录为 774)。

我想logrotate时不时地用来归档日志。由于我们组中的每个人都可以读取这些文件,因此我假设 logrotate 可以由用户执行。但是,logrotate 尝试创建与原始文件具有相同所有者的旋转文件。如果活动用户拥有所有文件,则一切正常,但否则 logrotate 会失败,因为用户无权创建其他人拥有的文件。

有办法解决这个问题吗?到目前为止,我已经考虑(并放弃)了以下选项

  • 以 root 身份运行 logrotate。理想情况下,我会从其他程序之一触发 logrotate,该程序可以由组中的任何人运行。即使那些没有 sudo 权限的人也是如此。
  • create选项可以帮助后续的日志轮转,因为活动用户将拥有所有日志文件。但第一次调用 logrotate 时它没有帮助。
  • su选项需要 root 权限,并且可能没有帮助,因为日志文件不一定全部属于同一用户。
  • 基于cp/mv和推出我自己的脚本> ${file}。如果可能的话,我想利用现有的工具。