最近有一个大规模的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所示)
答案 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
将是旧版的一个闪亮的新副本,所有文件都具有正确的权限。