Apache以用户nobody运行php脚本,cron以用户身份运行php脚本

时间:2013-03-08 07:56:16

标签: php permissions cron cpanel

我的默认cpanel设置以用户“nobody”运行apache。因此,当我通过输出文件的浏览器运行php脚本时,该文件具有所有权nobody:nobody。当我以用户“fred”登录的cron作业运行脚本时,输出文件归fred所有:fred 我需要浏览器和cron来覆盖同一个文件。我遇到的问题是,如果一个“用户”创建该文件,另一个“用户”无法覆盖它。 请您告诉我基本问题在哪里以及可能的解决方案。文件的权限是0775。

  • 我是否需要设置组 - 将用户添加到与nobody无关的同一组?如果是这样的话?
  • 如何让cron作业以用户身份运行?

非常感谢, 劳埃德

2 个答案:

答案 0 :(得分:0)

将文件的权限更改为 0777 后,请尝试使用代码。 但这会产生安全问题,因为任何人都可以编辑您的文件。

我有一个逻辑你需要实现:

  1. 创建一个shell脚本,将 temp 文件的内容复制到实际文件
  2. 从PHP开始,您只需要更新 temp 文件,而Shell可以读取它,因为临时文件对每个人都有读取权限。
  3. 使用 ssh2_exec 命令使用Linux UserName和Password执行shell脚本。
  4. 对于 ssh2_exec 手册,请点击此链接:http://php.net/manual/en/function.ssh2-exec.php

    希望这将解决您的问题。

答案 1 :(得分:0)

好的,我的解决方案是为用户“nobody”创建一个crontab。 我有一个标准的cpanel安装,所以去了/ var / spool / cron为没人创建了一个条目。 Ran crontab -e编辑并安装。 现在,php在cron作业中的运行状态与通过浏览器完全相同。所有写入的文件都属于nobody,只有rw权限。