我的服务器同时安装了 Subversion 和 Apache,Apache Web 目录也是一个 Subversion 工作副本。这样做的原因是简单的命令svn update /server/staging
会将最新的源代码部署到登台服务器。
Apache 公共网络目录:/server/staging
——(这是一个 SVN 工作副本。)
我的服务器上有两个用户,“richard”和“austin”。他们都是“开发者”组的成员。我使用“sudo chown -R richard:developers /server”递归地将 /server 目录的权限设置为 richard:developers。
然后,我为“richard”和“developers”组设置了读取、写入和执行的权限。
那么可以肯定的是,'austin' 现在应该可以使用该svn update /server/staging
命令了?然而,当他尝试时,他得到了错误:
svn: Can't open file '/server/staging/.svn/lock': Permission denied
如果我递归地将 /server 的所有者更改为 austin:developers,他可以很好地运行命令,但是“richard”不能。
我该如何解决这个问题?我想创建一个提交后挂钩,以便在提交文件时自动部署登台站点,但我看不到一种适用于两个用户的方法。钩子是:
/usr/bin/svn update /server/staging
对他们两个使用相同的用户帐户实际上并不是一个可接受的解决方案,而且我不知道有任何方法可以在挂钩内以“root”身份运行命令。
任何帮助表示赞赏!