Ubuntuサーバーでsvnをセットアップしました。ログインできるユーザーがいます。問題は、ファイル構造を変更しようとすると、許可拒否エラーが発生することです。
ファイル '/ var/www-svn/db/txn-current-lock'を開けません: Permission denied
私のレポジトリは/ var/www-svnにあり、そのフォルダのパーミッションはユーザーANDグループのdrwxr-xr-x
ですsvn(パーミッションが悪いので「それが正しいかどうかわからない)。 svnでログインするユーザーはsvnグループに属しますが、ファイル構造を変更できません。 私は何を間違えていますか?フォルダーのユーザーとグループをログインしたユーザーに変更しても機能します。
Svnserve.confでは、anon-accessはnoneおよびauth-accessはwriteに設定されます。
(/ varディレクトリ内にSudo chown -R svn:svn www-svn
と入力して、/ var/www-svnの所有者を変更しました。)
Svnserveデーモンは、rootとしてではなく、ユーザーの下で実行されました。ユーザーの下で実行されているsvnserveプロセスを強制終了し、rootとして再起動しました。今では動作します。
web-dav経由のsvnまたはApacheが作業している同じLinuxユーザーがファイルシステム上のリポジトリフォルダを所有するか、最後に読み取り/書き込み許可を持つ必要があります...
私の場合、それは:
$ chown -R www-data:www-data /svn/reponame
/ var/www-svn /フォルダーにSETUIDビットを追加する必要があります。トランザクションで、フォルダーによって表されるトランザクションを保持するためにSVNの実行中にフォルダーが生成されるためです。
つまり、簡単に言うと
chmod +s -R /var/www-svn/
問題を解決する必要があります。
私の問題は、パーミッションを適用してからsvnadmin create
そのため、許可の設定が再度必要になりました。
$ Sudo chown -R www-data:Subversion myproject
$ Sudo chmod -R g+rws myproject
Superuser.comの質問のようです。一見、グループsvnにはそのフォルダーに対する書き込み権限がありません。これが問題かもしれません。これを見てください http://www.svnforum.org/threads/35493-Can-t-open-db-txn-current-lock-permission-denied
Sudo権限がない場合:
私の特定のケースでは、1つの共有Webfactionサーバーから別のサーバーに移行していました。ファイルをコピーするとリポジトリ全体の所有権がユーザー名に割り当てられている必要がありますが、リポジトリにアクセスするには、おそらく所有者がApacheである必要があります。適用できませんでしたchown Apache:mygroup repo
ユーザーApacheにアクセスできないため。ルートアクセスなしで動作させる唯一の方法はchmod -R 777 .
リポジトリルート内で、最終的にはchownする権限のないロックファイルを削除します。これでようやく問題が解決し、再びコミットできました。
質問は非常に古いものですが、Googleでは上位にランクされていますが、LinuxでApache/httpdのSubversionを使用している場合は、解決策が役に立たないことがわかります。
Apache、CentOS linuxでSubversionを実行しています。私にとって、問題はSELinuxと無効化が原因でした。
本番サーバーではSELinuxを無効にすることは推奨されないため、これを行う前に注意が必要です。そうする前に、ドキュメントをよく読んでください。
コメントでスチュワートが示唆したように、別の解決策はファイルのアクセス許可を更新することです。ただし、詳細は入手できませんが、ファイルのアクセス許可を微調整することで解決できます。
最後になりましたが、リポジトリがユーザーおよびグループsvnによって所有されている場合
(Sudo chown -R svn:svn /var/svn/repos
)
それにアクセスできるユーザーを必ずsvnグループに追加してください。 vi /etc/group
svn:x:502:user1,user2
作成されたレポジトリに対する読み取りおよび書き込み権限がありません。
chcon -R -t httpd_sys_rw_content_t/path_to_svn例:chcon -R -t httpd_sys_rw_content_t/opt/svn/trunk