0

我有一个具有共享 config.php 文件的 Web 应用程序。在这个文件中,我包含了一个收集错误消息的函数(使用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 访问权限。

谢谢,亚当

4

1 回答 1

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

你不需要身份证。用户名就足够了,如果您不想硬编码,我建议您:

  • 首先grep /etc/apache2/apache2.config 为“用户”
  • 使用用户名执行 chmod(chmod 将为您获取用户 ID)
于 2010-09-07T11:33:10.620 回答