SVN权限被拒绝 - txn-current-lock

时间:2011-12-10 18:46:25

标签: svn ubuntu ubuntu-server

我刚刚在我的ubuntu服务器上设置了svn。我有一个我可以登录的用户。问题是,每当我尝试对文件结构进行更改时,我都会收到权限被拒绝错误。

Can't open file '/var/www-svn/db/txn-current-lock':
Permission denied

我的回购邮件位于 / var / www-svn ,该文件夹的权限为drwxr-xr-x,用户和组 svn (我的权限很差)所以我不知道这是否正确)。我在svn上登录的用户是在svn组中,但是我无法更改文件结构。 我做错了什么?如果我将文件夹的用户和组更改为我登录的用户,它也可以。

在svnserve.conf中, anon-access 设置为 none auth-access 设置为 write

(我通过在/ var目录中键入sudo chown -R svn:svn www-svn来更改/ var / www-svn的所有者。)

10 个答案:

答案 0 :(得分:19)

文件系统上的存储库文件夹必须拥有或最终具有与您的svn或apache通过web-dav 正在处理的相同Linux用户的读/写权限...

就我而言:

$ chown -R www-data:www-data /svn/reponame

答案 1 :(得分:11)

你必须为/ var / www-svn /文件夹添加SETUID位,因为在事务处理期间会有SVN运行期间生成的文件夹,用于保存由文件夹表示的事务。

这意味着简单地说就是

chmod +s -R /var/www-svn/

应该解决问题。

答案 2 :(得分:8)

svnserve deamon在我的用户下运行,而不是root用户。我杀死了在我的用户下运行的svnserve进程并以root身份重新启动它。它现在有效。

答案 3 :(得分:6)

我的问题最终是我申请了权限,然后svnadmin create,因此需要再次设置权限。

 $ sudo chown -R www-data:subversion myproject
 $ sudo chmod -R g+rws myproject

答案 4 :(得分:3)

这对superuser.com来说似乎是一个问题。 乍一看,group svn对该文件夹没有写入权限。所以也许这就是问题所在。 看一下这个http://www.svnforum.org/threads/35493-Can-t-open-db-txn-current-lock-permission-denied

答案 5 :(得分:2)

如果您没有sudo权利:

在我的特定情况下,我从一个共享的Webfaction服务器迁移到另一个。复制文件必须已将整个存储库所有权分配给我的用户名,而所有者可能应该是apache,以便可以访问存储库。我无法应用任何chown apache:mygroup repo,因为我无法访问用户apache。如果没有root访问权限,那么使其工作的唯一方法是在我的存储库根目录中chmod -R 777 .,最终删除我无权知道的锁定文件。这最终解决了这个问题,我可以再次提交。

答案 6 :(得分:0)

最后但并非最不重要的,如果您的存储库由用户和组svn

拥有

sudo chown -R svn:svn /var/svn/repos

务必将可以访问它的用户添加到svn组。 vi /etc/group

svn:x:502:user1,user2

答案 7 :(得分:0)

虽然这个问题很老,但它在Google上排名较高,但在Linux上的Apache / httpd上进行颠覆却没有找到有用的解决方案。

我在Apache,CentOS linux上运行subversion。对我来说问题是由于SELinux和禁用帮助了我。

在执行此操作之前需要谨慎,因为可能不建议在生产服务器上禁用SELinux。在尝试之前请仔细阅读文档。

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Enabling_and_Disabling_SELinux-Disabling_SELinux.html

正如斯图尔特在评论中所建议的那样,另一种解决方案是通过更新文件权限,虽然更多细节不可用,但一些调整文件权限应该会有所帮助。

答案 8 :(得分:0)

创建的存储库缺少读取和写入权限。

chcon -R -t httpd_sys_rw_content_t / path_to_svn 例如:chcon -R -t httpd_sys_rw_content_t / opt / svn / trunk

答案 9 :(得分:0)

重启 Eclipse IDE。

我遇到了完全相同的情况,但在尝试使用 EclipseIDE 提交更改时失败了。

在 Eclipse 运行时,我更改了喜欢提交到存储库的用户组。

出人意料的是,我注意到,一旦我重新启动 Eclipse,就会授予存储库的修改组/权限。我认为 Eclipse 会保持 ssh-channel 打开,并且在 ssh-channel-session 期间,修改后的 grouprights 会被忽略。

在 eclipse-restart 期间,ssh-session 被重新创建,修改后的组权限被粘贴到新的 ssh-session 以授予提交。