以 root 身份运行 logrotate 的安全性是否存在问题?有人问过恶意用户是否无法破坏配置来覆盖任何内容?在其他用户的 cron 之外运行 logrotate 可以吗?
答案1
只要用户可以在包含日志文件的目录中写入和创建文件,您就可以使用其他用户。但是,如果您的 logrotate 配置只能由 root 编辑,那么我认为风险不大。如果有人可以破坏它,他们就可以获得 root 权限,并且可能造成的危害远不止弄乱日志文件,因此,尽管确实存在担忧,但并不能真正证明定制标准应用程序(如 logrotate)是合理的。
答案2
如果 logrotate 配置只能由 root 写入,那么人们更改它以覆盖随机文件应该不会有任何问题。如果您想以其他用户身份运行它,则必须确保该用户有权更改您想要轮换的所有日志文件,这会增加复杂性,但回报却很少。
答案3
通常,任何用户都应该能够运行 logrotate,但您需要覆盖默认状态文件和默认配置。查看手册页即可轻松完成此操作:
% /usr/sbin/logrotate --state ~/mylogrotate.status ~/mylogrotate.conf
否则,作为非 root 用户,您将无法更改状态文件或执行诸如重新启动您不拥有的服务之类的操作。