私のサーバーには Subversion と Apache の両方がインストールされており、Apache Web ディレクトリも Subversion の作業コピーです。これは、単純なコマンドsvn update /server/staging
で最新のソースがステージング サーバーにデプロイされるためです。
Apache パブリック Web ディレクトリ: /server/staging
— (これは SVN 作業コピーです。)
私のサーバーには、'richard' と 'austin' という 2 人のユーザーがいます。どちらも「開発者」グループのメンバーです。「sudo chown -R richard:developers /server」を使用して、/server ディレクトリの権限を richard:developers に再帰的に設定しました。
次に、'richard' グループと 'developers' グループの両方に対して、読み取り、書き込み、および実行のアクセス許可を設定します。
svn update /server/staging
確かに、「オースティン」はコマンドを使用できるようになったはずですか? ただし、試行すると、次のエラーが表示されます。
svn: Can't open file '/server/staging/.svn/lock': Permission denied
/server の所有者を austin:developers に再帰的に変更すると、彼はコマンドを正常に実行できますが、「リチャード」は実行できません。
問題を解決するにはどうすればよいですか? ファイルがコミットされたときにステージング サイトを自動的に展開するポストコミット フックを作成したいのですが、両方のユーザーに対して機能する方法がわかりません。フックは次のようになります。
/usr/bin/svn update /server/staging
両方に同じユーザー アカウントを使用することは、実際には受け入れられる解決策ではありません。また、フック内で「root」としてコマンドを実行する方法を知りません。
どんな助けでも大歓迎です!