当前位置: 主页 > Linux安装教程 > 常见问题 >

“Cant open file .svn/lock: Permission denied”问题解决

时间:2018-04-15 15:00来源:网络整理 作者:Linux先生 举报 点击:
做linux自动化运维SVN自动更新的时候,发现无法同步,只能登陆服务器运行svn co http://192.168.1.10/svn/debao才能更新,开发组那边windows机器执行post-commit

做linux自动化运维SVN自动更新的时候,发现无法同步,只能登陆服务器运行svn co 才能更新,开发组那边windows机器执行post-commit的时候虽然提交到SVN服务器,但是无法自动在web服务器显示
    1.第一次在web服务器checkout的时候,其中debao为SVN仓称,我用的是root超级用户,因为是服务器管理员。

2.我同事svn up的时候会报下面的错误,提示没有权限打开该文件.svn/lock

[root@lamp hooks]# ssh -p 60022 www@192.168.1.170 /usr/local/bin/svn update /home/wwwroot/debao www@192.168.1.170's password: svn: Can't open file '/home/wwwroot/debao/data/filecache/.svn/lock': Permission denied

3.用ll查看当前文件夹下的.svn文件时发现其所属组所有者为root

[root@as4-dev wwwroot]# ll debao/.svn total 28 -r--r--r-- 1 root root 143 Oct 28 12:27 all-wcprops -r--r--r-- 1 root root 313 Oct 28 12:27 entries -r--r--r-- 1 root root 2 Oct 28 12:25 format drwxr-xr-x 2 root root 4096 Oct 28 12:25 prop-base drwxr-xr-x 2 root root 4096 Oct 28 12:25 props drwxr-xr-x 2 root root 4096 Oct 28 12:27 text-base drwxr-xr-x 5 root root 4096 Oct 28 12:27 tmp


  知道了问题的真正原因,就可以通过下面的方法解决Can't open file '.svn/lock': Permission denied的问题。
    方法一:给目录加权限,www权限,这边www是组

chmod o+w .svn -R su - www svn up

方法二:是把.svn的属主属组修改给用户,svn up就可以了。

总结:SVN 出现“Can't open file '.svn/lock': Permission denied”问题原因是因为第一次checkout的时候是用root,使得其他用户没有权限,通过以上方法可以解决。

另外我是通过linux下SVN里面的post-commit来实现自动化SVN更新的

[root@lamp hooks]# cat /ec-channels/debao/hooks/post-commit | grep -v "#" /usr/local/sbin/debao.sh [root@lamp hooks]# vim /usr/local/sbin/debao.sh ssh -p 60022 www@192.168.1.170 /usr/local/bin/svn update /home/wwwroot/debao

只需要修改debao.sh里面的www@192.168.1.170  修改成root@192.168.1.170  因为我刚开始的时候是用超级用户来checkout的。
另外复习了username使用SVN,指定SVNcheckout时的账号
svn co --username=www
输入密码即可

推荐内容