0

我正在运行通过 exec() 调用脚本的 PHP 代码。此脚本运行svn commit未指定用户的命令。运行此脚本(通过调用验证)的用户(我们称他为 NICK)whoami有一个证书,在该证书下使用选项~/.subversion指定。该证书文件附加了一个用户名(通过输出证书的内容可以看到~/.subversion/serversssl-client-cert-file

当通过 NICK 的 crontab 上的 cron 作业调用此脚本时,提交的 SVN 作者与我之前提到的证书中的作者相同。但是当通过 PHP 的 exec() 函数调用相同的脚本时,提交的作者是不同的用户。我一生都无法弄清楚为什么要使用其他用户。我已经尝试为提交命令提供--username选项,并且我也尝试过使用svn propset svn:author无济于事。有谁知道为什么会这样?PHP / Apache 是否使用不同的证书?任何有关正在发生的事情或如何改变这种行为的信息将不胜感激。

4

2 回答 2

0

Apache 通常配置为以无人身份运行。如果您从浏览器调用脚本。它将按照用户 apache 的配置运行。

于 2012-08-14T00:57:38.857 回答
0

您是否尝试过在 exec 中使用 sudo 为命令添加前缀?

exec('sudo -u nick ./path/to/script');
于 2012-08-14T00:48:58.093 回答