修复BZR的权限

时间:2013-01-31 18:08:02

标签: permissions bazaar chmod

最近有一个大规模的chown-root:root在服务器上,所以现在我正在尝试修复BZR权限。

将代码提交到主分支时出现下一个错误:

Run command: bzr commit -m "[new commit msg]"
Committing to: sftp://goce@[IP:PORT]/usr/local/www/data/bzr/pr1/goce/

bzr: ERROR (ignored): 'sftp://goce@[IP:PORT]/usr/local/www/data/bzr/.bzr/repository/upload/e9sb7n5enoi59nixasq6.pack'

bzr: ERROR: Permission denied: "/usr/local/www/data/bzr/.bzr/repository/upload/e9sb7n5enoi59nixasq6.pack": [Errno 13] Permission denied

查看报告的文件显示:

$ pwd
/usr/local/www/data/bzr/.bzr/repository/upload
$ ls -al
total 1212
drwxrwxr-x 2 root bzr    4096 Jan 30 14:02 .
-rw-r--r-- 1 goce bzr  204814 Jan 30 12:45 e9sb7n5enoi59nixasq6.pack
…
-rw-rw-r-- 1 root root     42 May  2  2011 umxv2mvk79n72bkjjae9.pack
...

出现此错误的主要原因是什么?

可能是e9sb7n5enoi59nixasq6.pack应该具有g-rw权限,并且BZR无法创建g-rw文件吗?(猜测这个因为那里有很少的g-rw文件,如xample所示)

1 个答案:

答案 0 :(得分:2)

首先,用户goce对父目录/usr/local/www/data/bzr/.bzr/repository/upload没有写权限这一事实可能会导致一些问题。例如,这会阻止从目录中删除文件。

我认为您应该chown -R goce /usr/local/www/data/bzr来清理权限问题。

最干净的解决方案是用干净的新副本替换分支:

cd /usr/local/www/data
mv bzr bzr-bak
bzr branch --no-tree bzr-bak bzr

因此,/usr/local/www/data/bzr将是旧版的一个闪亮的新副本,所有文件都具有正确的权限。