通过cron vs apache创建的文件的不同文件所有者

时间:2010-09-07 11:04:46

标签: php apache permissions chown

我有一个Web应用程序,它有一个共享的config.php文件。在此文件中,我包含一个收集错误消息的函数(使用set_error_handler),然后在脚本执行结束时将错误保存到集中日志文件中(使用register_shutdown_function)。

日志文件每天以Y-m-d.log格式创建。作为应用程序的一部分,Cron脚本每5分钟运行一次,因此通常是每天发生第一个错误的原因,因此错误文件是在cron用户(即帐户超级用户)下创建的。

当我们的员工进入工作并使用该应用程序时,该脚本在apache用户(99)下运行。错误记录器无法写入错误文件,因为它由超级用户拥有。

一种可能的解决方案是将日志文件的cron脚本chown设置为99,以便apache用户可以访问它。 uid 99是apache托管的公认惯例,或者如果我硬编码99,我是否会导致未来的可移植性问题?

还有其他方式(不使用exec / sudo)来访问我的日志吗?

更新:我没有对服务器的shell访问权限。

谢谢,亚当

1 个答案:

答案 0 :(得分:1)

root@deathstar:~# su nobody
$ id
uid=65534(nobody) gid=65534(nogroup) Gruppen=65534(nogroup)

你不需要id。用户名就够了,如果你不想硬编码,我建议你:

  • 首先grep /etc/apache2/apache2.config为“用户”
  • 使用用户名执行chmod(chmod将为您获取用户ID)