SVN错误 - svn:E000013:无法打开文件'/usr/local/svn/repos/puppetdb/db/txn-current-lock':权限被拒绝。

4
当我尝试提交所做的更改时,我的svn存储库会出现此错误:
[root@puppet:/opt/puppetdb] #svn commit -m "removing everything before the rebuild"
Deleting       conf.d
Deleting       logback.xml
Deleting       puppetdb
Deleting       ssl
svn: E000013: Commit failed (details follow):
svn: E000013: Can't open file '/usr/local/svn/repos/puppetdb/db/txn-current-lock': Permission denied

但是,该文件的权限看起来应该允许我修改它:
-rwxrwxr-x. 1 apache svn 0 Apr 27 02:18 /usr/local/svn/repos/puppetdb/db/txn-current-lock
关闭SELinux并没有改变结果。
如果我将该文件的权限更改为全局可读/可写,则可以使提交工作。但是,肯定有更好的方法!我该如何解决这个问题?
谢谢,
3个回答

3

服务的所有权只是整个问题的一半。以@bluethundr为例,以下是该存储库:

-rwxrwxr-x. 1 apache svn 0 Apr 27 02:18 /usr/local/svn/repos/puppetdb/db/txn-current-lock

确保Apache用户拥有所有文件和子目录的所有权

/usr/local/svn/repos/puppetdb 

可能已经足够了。然而,如果Apache dav_svn_module的所有者是svn组的成员,并且该组对仓库具有递归写入权限,则这也可以工作。


2

不是您应该能够访问 /usr/local/svn/repos/ 及其所有内容的写入权限,而是运行Subversion服务器的服务(即Apache)需要具有访问存储库目录所需的所有权限。请确保它具有目录的所有必需权限。


1
在SVN服务器上,确保存储库(以及所有子文件夹)的所有者和组已正确设置。
例如,我作为root从SVN服务器发出以下命令创建了一个repo:
svnadmin create /path/myrepo
最初,我从我的SVN客户端收到“txn-current-lock”错误。在SVN服务器上,我注意到/path/myrepo及其所有子文件夹的所有者:组为root:root。为了解决这个问题,我从SVN服务器上发出以下命令:
chown -R newowner:newgroup 请确保newowner和newgroup与SVN客户端提供的所有者/组信息相匹配。
重要的是使用-R选项进行递归。这样可以修复“txn-current-lock”错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接