代码之家  ›  专栏  ›  技术社区  ›  Adam Hopkinson

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

  •  0
  • Adam Hopkinson  · 技术社区  · 15 年前

    我有一个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 回复  |  直到 15 年前
        1
  •  1
  •   VP.    15 年前
    root@deathstar:~# su nobody
    $ id
    uid=65534(nobody) gid=65534(nogroup) Gruppen=65534(nogroup)
    

    您不需要ID。用户名足够,如果不想硬编码,我建议您:

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