5

今朝、私はSubversionの改訂をコミットしようとしましたが、突然、そうする許可がなくなったことがわかりました。

'/svn/db/txn-protorevs/21000-ga9.rev'を'/svn/db/revs/21/21001'に移動できません:
アクセス拒否

revsディレクトリを見ると、誰かが21000番目のリビジョンをコミットしていて、新しいディレクトリのグループ書き込み権限が何らかの理由で欠落していることに気付きました。

    drwxrwsr-x 2 svn svn 24K 2008-10-27 10:04 19
    drwxrwsr-x 2 svn svn 24K 2008-12-18 07:13 20
    drwxr-sr-x 2 jeff svn 4.0K 2008-12-18 11:18 21

そのディレクトリにグループ書き込み権限を設定すると、コミットできるので、さらに1000回のリビジョンに対応できます。しかし、なぜこれが発生するのでしょうか。また、発生しないようにするにはどうすればよいでしょうか。

4

3 に答える 3

8
于 2008-12-18T18:40:28.210 に答える
2

この問題を解決する最善の方法は、サーバー経由でリポジトリにアクセスすることです。

暗号化されていない通信を気にしない場合 ( を使用しているため、そのように思われますfile://)、svnserveセットアップは非常に簡単です。

svnserve -d -r /svn

セットアップと認証の構成については、このリファレンスを参照してください。

残念なことに、各ユーザーの認証を個別に設定する必要があります。

OS の認証に接続するには、もう少し複雑な Apache SVN サーバーをセットアップする必要があります。これらの一般的な手順を参照してください。お使いの OS に固有の手順は、グーグルで検索して見つけることができます。

最後に、 を使用している間にグループの書き込み許可がリセットされるのを防ぐための最速のルートが必要な場合は、file://全員にシェルの起動時に適切な umask (002) を設定させるか、それを設定するラッパー スクリプトを介して svn を使用します。

#!/bin/bash
# svnwrapper.sh
umask 002
/usr/bin/env svn $*

この umask がご使用の環境でセキュリティ上の問題にならないことを確認してください。

于 2008-12-18T19:16:55.920 に答える
0

最も可能性の高い原因はグレッグが言ったようです。誰かがfile://プロトコルを介してリポジトリにアクセスしていて、過度に制限されたumaskを持っています。

于 2008-12-18T19:13:11.933 に答える