SVN User Oddity from PHP exec()


SVN User Oddity from PHP exec()

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

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

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

exec('sudo -u nick ./path/to/script');

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