0

最近、サーバー上で大量の chown-ing root:root があったため、BZR パーミッションを修復しようとしています。

コードを master ブランチにコミットすると、次のエラーが表示されます。

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 ファイルを作成できないのでしょうか?

4

1 に答える 1

2

1 つには、ユーザーgoceが親ディレクトリへの書き込み権限を持っていないという事実は/usr/local/www/data/bzr/.bzr/repository/upload、いくつかの問題を引き起こす可能性があります。たとえば、これにより、ディレクトリからファイルを削除できなくなります。

chown -R goce /usr/local/www/data/bzrパーミッションの問題を解決するためにa を実行する必要があると思います。

最もクリーンな解決策は、ブランチをクリーンな新しいレプリカに置き換えることです。

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 に答える