2

私はメモをとるための個人的な wiki を持っています。wiki のページは Subversion の作業コピー ディレクトリ "pages" にあり、私はそれらのパーミッションを www-data:www-data が所有する 664 に設定しました。私のユーザー名は「www-data」グループにあるので、手動でチェックインしてページをいじることができます。

しばらくの間、チェックインを実行するたびに、ファイルの所有者が www-data:www-data ではなく me:www-data になり、wiki ファイルを変更できなくなるという問題がありました。私のウェブインターフェース!「ページ」ディレクトリの setgid ビットを反転することで問題を解決しましたが、そもそもなぜこれが起こったのかについてはまだ混乱しています:

何かを subversion にチェックインするたびに、svn がそれを削除して再作成したように見えます。なんで?この動作は、私が認識していない機能をサポートしていますか? それを変更する方法はありますか?

ありがとう!

4

2 に答える 2

3

「スティッキー」許可ビットを設定します。

find -type d -exec chgrp www-data {} + 
find -type d -exec chmod g+s {} + 

これにより、チェックアウトのファイル作成フェーズで、最後に編集した人に切り替えるのではなく、ディレクトリのアクセス許可を継承するようになります。

編集: dow +s == setgid. 後世や他の読者のためにここに残されている情報。

于 2008-10-07T13:45:00.047 に答える
2

使い方が間違っていると思います。あなたができることは、すべてをサブバージョンのままにして、ローカルの作業コピーを開発先の www ディレクトリとは別にすることです。

次に、www ユーザーの www 作業コピーを自動更新 (または、 wwwフォルダーに .svn ディレクトリが必要ない場合はエクスポート) するだけです。によると。

ワークフローは次のようになります。

  1. /home/youruser/yourwiki-working-copy/ のファイルを編集します
  2. svn コミットを行う
    • post-commit フックは、/var/www/ (または wiki がある場所) のファイルを更新します。
  3. 1に行きます。

このように、権限について心配する必要はなく、バージョン管理のすべての利点を利用して、Web サイトで複数の人が作業することさえできます。

于 2008-10-07T11:34:09.983 に答える