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

时间:2015-08-09 22:14:07

标签: svn

当我尝试提交我所做的更改时,我从我的svn repo中收到此错误:

[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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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”错误。

答案 2 :(得分:1)

服务所有权只是图片的一半。对于@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组的成员,并且该组具有对存储库的递归写入权限,那么它也可以使用。