问题描述
我刚刚在ubuntu服务器上设置了svn。我有一个可以登录的用户。问题是,每当我尝试对文件结构进行更改时,都会出现权限被拒绝的错误。
Can't open file '/var/www-svn/db/txn-current-lock':
Permission denied
我的存储库位于/var /www-svn中,该文件夹上的权限是用户AND组svn的drwxr-xr-x
(我对权限很不好,所以我不知道这是正确的)。我登录svn的用户位于svn组中,但是我无法更改文件结构。我究竟做错了什么?如果我也将文件夹的用户和组更改为我也登录的用户,则可以使用。
在svnserve.conf中,将anon-access设置为none,将auth-access设置为write。
(我通过在/var目录中键入sudo chown -R svn:svn www-svn
来更改/var /www-svn的所有者。)
最佳办法
文件系统上的存储库文件夹必须是所有者,或者最后必须由您的svn或apache通过web-dav正在处理的同一Linux用户具有读/写权限。
就我而言:
$ chown -R www-data:www-data /svn/reponame
但在其他情况下,情况可能会有所不同,例如
$ chown -R someuser:somegroup /svn/reponame
因此,用适当的值替换someuser:somegroup。
次佳办法
您必须为/var /www-svn /文件夹添加SETUID位,因为在事务下将在SVN运行期间生成一些文件夹,以保留由文件夹表示的事务。
简而言之,这意味着
chmod +s -R /var/www-svn/
应该解决问题。
第三种办法
svnserve守护进程以我的用户身份运行,而不是以root用户身份运行。我杀死了在我的用户下运行的svnserve进程,并以root身份重新启动了它。现在可以使用了。
第四种办法
我的问题最终是我应用了权限,然后执行了svnadmin create
,因此再次需要设置权限。
$ sudo chown -R www-data:subversion myproject
$ sudo chmod -R g+rws myproject
第五种办法
对于superuser.com来说似乎是个问题。乍一看,组svn对该文件夹没有写权限。也许这就是问题所在。看看这个http://www.svnforum.org/threads/35493-Can-t-open-db-txn-current-lock-permission-denied