SVN:强制svn守护进程在不同的用户下运行

时间:2012-06-25 11:50:29

标签: linux svn command-line

我有一个小型NAS服务器(QNAP TS-210),机载Linux有限。我在本地SVN守护程序中运行挂钩时遇到问题。如果我直接从命令行运行它们,一切都OK。如果SVN尝试将它们作为钩子运行,或者如果它们被添加到crontab然后CRON尝试运行它们,则两者都会失败。

我被告知这是由于运行这些脚本/钩子的用户之间的差异。我通过SSH以“admin”身份登录到我的nas,并假设CRON和SVN都在“root”下运行。似乎root没有获得足够的目标文件夹权限(我使用SVN post-commit-hook将存储库导出到某个本地文件夹)或运行SVN / CRON(SVN也在pre-revprop-change hook上失败,即使它仅包含exit 0,因此我假设SVN根本无法运行挂钩。或者这可能有所不同?

编辑:如何强制SVN在“admin”下运行,或者如何为“root”设置足够的权限,这样它就可以运行SVN钩子(“admin”)?

编辑:我的钩子脚本位于/share/Sys/svn/tools_and_examples/hooks,因此,调用

ls -lh /share/Sys/svn/tools_and_examples/hooks

结果如下:

-rwxrwx--x    1 trejder  everyone      147 Jun 24 14:33 post-commit.cron*
-rw-rw----    1 admin    administ     1.9k Jun 25 12:20 post-commit.tmpl
-rw-rw----    1 admin    administ     1.6k Jun 25 12:20 post-lock.tmpl
-rw-rw----    1 admin    administ     2.2k Jun 25 12:20 post-revprop-change.tmpl
-rw-rw----    1 admin    administ     1.5k Jun 25 12:20 post-unlock.tmpl
-rw-rw----    1 admin    administ     3.3k Jun 25 12:20 pre-commit.tmpl
-rw-rw----    1 admin    administ     2.4k Jun 25 12:20 pre-lock.tmpl
-rw-rw----    1 admin    administ        6 Jun 25 12:29 pre-revprop-change
-rw-rw----    1 admin    administ     2.1k Jun 25 12:20 pre-unlock.tmpl
-rw-rw----    1 admin    administ     2.7k Jun 25 12:20 start-commit.tmpl

ls -lh /share/Sys/svn/tools_and_examples/hooks/post-commit.cron给了我这个:

-rwxrwx--x    1 trejder  everyone      147 Jun 24 14:33 /share/Sys/svn/tools_and_examples/hooks/post-commit.cron*

希望,这会有所帮助。

1 个答案:

答案 0 :(得分:1)

以管理员身份启动cron,而不是编辑

/etc/crontab

你应该使用

crontab -e

以管理员身份登录,并将管理员要使用自己的crontab启动的任何命令/脚本放入其中。如果我没错,它应该以“admin”用户身份启动它