SVN提交后的用户权限

我有一个debian的networking服务器上运行的颠覆。

我试图使用post-commit脚本来更新我的网站的暂存版本。

#!/bin/sh /usr/bin/svn update /home/sites/example.com/www >> /var/log/svn/example.log 2>&1 

如果我从命令行运行该命令login为用户'derek',那么它一切正常

但是当它作为提交后运行时,我的日志文件中出现以下错误:

 svn: Can't open file '/home/sites/example.com/www/.svn/lock': Permission denied 

好吧,所以我知道这里发生了什么是用户调用后提交脚本不是'derek',所以它没有权限。

所以我的问题是用户在调用post-commit脚本。

svnserve守护进程作为derek运行…我认为这将意味着post-commit命令将被称为derek,但它似乎不是。

任何想法如何我可以找出用户调用它

其次是什么是允许该用户访问的最佳实践方法? 我不认为将其添加到组中会有帮助,因为该组默认情况下没有对.svn目录的写入权限。

更新:我刚刚发现,www数据是似乎正在调用脚本的用户。 现在自然万维网数据不能运行svn命令。

who am i >> /var/log/svn/example.log将输出命令正在运行的用户。

嗯。 挂钩在用户svnserve运行时运行。

http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks

Subversion作为拥有正在访问Subversion版本库的进程的同一个用户执行钩子。 在大多数情况下,存储库是通过一个Subversion服务器访问的,所以这个用户和服务器在系统上运行的用户是同一个用户

我得到了它的工作。 我不得不写我自己的C程序,但它的工作原理!

感谢我在这里find的信息: http : //forum.webfaction.com/viewtopic.php?pid=216#p216