回答:
svn + ssh URLにアクセスするには、svnクライアントが「ssh -q user @ host svnserve -t」を使用してsvnserveインスタンスを起動し、stdin / stdoutを介してそのインスタンスと通信します。
ユーザーが通常のsshアクセスを必要とする場合でも、アクセスを1人のユーザーに制限し(chown -R svnserve:svnserve repo; chmod -R g-rwx、o-rwx repo)、svnserveコマンドをこのsetuid / setgid svnserveラッパープログラム。
共有ユーザー環境では、実際のSubversionサーバーを(svnserve
またはApache経由で)セットアップすることをお勧めします。この環境では、すべてのファイルアクセスはサーバープロセスのユーザーアカウントで行われるため、個々のユーザーはリポジトリファイルにアクセスする必要はありません。
Subversionブックには、サーバー構成の選択に関するセクションがあります。そのセクションから(私の強調):
SSHアカウントに大きく基づいている既存のインフラストラクチャがあり、ユーザーがサーバーマシンに既にシステムアカウントを持っている場合は、svnserve-over-SSHソリューションをデプロイするのが理にかなっています。それ以外の場合は、このオプションを広くお勧めしません。一般に、本格的なシステムアカウントではなく、svnserveまたはApacheによって管理される(架空の)アカウントを介してユーザーがリポジトリにアクセスする方が安全であると考えられています。
このサイトにはいくつかの素晴らしいトリックがあります:http : //svn.apache.org/repos/asf/subversion/trunk/notes/ssh-tricks
それでもうまくいかない場合は、回避策でうまくいくでしょうか?次のようなものをコミットフックに追加することで、誰かが何かをコミットするたびにリポジトリのバックアップをとることができます:sudo rsync -a / my / repo / path / my / closed / path /