0

最近服务器上有大量 chown-ing 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文件很少,如示例所示)

4

1 回答 1

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将是旧版本的闪亮新干净副本,其中所有文件都具有正确的权限。

于 2013-02-06T00:06:02.410 回答