1

私はBitBucketアカウントを持っており、プッシュが行われるとライブサーバーをプルして更新するスクリプトをサーバー上でトリガーします。トリガーは機能し、_wwwユーザーにhgrcなどを信頼させるのに多くの問題が発生した後(私はそれを機能させました)、実際にコマンドを実行しています。

問題は、フォルダーをロックできないというエラーが発生することです。これは、_wwwユーザーが.hgフォルダーへのアクセス許可を持っていないことを意味します。

これにアプローチする良い方法は何ですか?.hgフォルダーを0777にしたくありません_www。ユーザーと同じグループ(これはそうだと思います)に入れて、グループにrw(0775とは何ですか?)を与えることができます。それは受け入れられるでしょうか、それとも私が見逃しているかもしれない他のセキュリティへの影響、またはこれを処理するためのより良い方法がありますか?

私は自分のユーザーでコマンドを実行できました。そして多分私はできます。BitBucketはPOSTサービスを使用してサーバーに投稿し、PHPを介してコマンドを実行しますshell_exec()(リクエストがBitBucketのIPから送信された場合にのみコマンドを実行します)。

[更新]先に進み、権限を0775に設定しようとしましたが、それでも機能しませんでした(_wwwユーザーと同じグループにありません)。同じエラー、つまり:

中止:リポジトリをロックできませんでした/ path / to / local / repo:アクセスが拒否されました

4

2 に答える 2

1

あなたはグループのもので正しい考えを持っています。必要がある:

  • wwwユーザーが.hgディレクトリ内のすべてを所有するグループと同じグループに属していることを確認してください
  • .hgディレクトリ内のすべてchmod -R g+w .hgがグループ( )によって書き込み可能であることを確認してください

www以外の他のユーザーがそのリポジトリでプッシュ/プル/更新する場合は、sticky-group-bitを使用して、新しく作成されたファイルとディレクトリが.hgディレクトリ自体と同じグループ所有権を持つようにすることもできます。

find .hg -type d | xargs chmod g+s
于 2012-10-04T18:07:27.607 に答える
0

最初の段落は完全には明確ではありませんが.hgrc、ライブサーバー上のファイルを変更して、次のように追加してみましたか。

[trusted]
users = _www
groups = _www
于 2012-10-04T17:44:35.240 に答える