0

私は 2 つの Web サーバー間で負荷を分散しています。つまり、すべての Apache 設定と vhosts はほとんど同じです。LSync を使用して、それらがそのまま維持されるようにしたかったのです (または、問題を解決する別の解決策がある場合)あります、教えてください)

したがって、明らかにApacheはApacheユーザーとして実行され、ルートSSHログインを有効にすることはできないため、RSAキーを使用して2つのサーバー間でSSHできるlsyncユーザーを作成しました.

そして今、私はいくつかの許可エラーに遭遇しています。これは、私が実際に起こると予想していたことです。私が今試しているのは、lsyncユーザーをapacheグループに追加し、apacheユーザーをlsyncグループに追加したことです...そして、ファイルがユーザーグループの両方で chown 7 されている限り、それはうまくいくようです...

cron ジョブを設定して apache.apache を頻繁に chown することを考えました。グループとユーザーに対して chmod +rwx を実行することも考えましたが、他の問題が発生することは確かです。

lsync をapacheユーザーとして実行することを考えましたが、実際には .. が apache ホーム ディレクトリを所有する必要があるようです。そのため、apache ユーザーが ssh でディレクトリroot.rootから読み込もうとすると問題が発生します。.ssh

Google で調べたとき、これについてはあまり見つけることができませんでした...ほとんどの人は lsync に root ユーザーを使用していましたが、これは問題外です。

誰かが修正を持っているなら、それは素晴らしいことです! ありがとう

PS sudoers 構成を適切に構成すれば、 lsyncユーザーが sudo を介して特定のコマンドを実行できるようにすることができることを知っています...それを行う方法はありsudo chown apache.apache /var/www && sudo chmod -R u+rwx /var/wwwますか?

4

2 に答える 2

1

rsync宛先に作成するファイルの権限を強制するオプションがあります: --chmod=<blah>. lsyncdはこれを直接サポートしていませんが、rsync フラグをパススルーできます。

これを lsyncd 構成に追加してみてください。

_extra = {"--chmod=Dug+rwx,Fug+rw"}

Dこれにより、ディレクトリ には所有者とグループの読み取り/書き込み/実行権限があり、ファイル には所有者とグループの読み取り/書き込み権限があることが保証されますF。その他のアクセス許可は、ソース サーバーと同じように設定する必要があります。

ファイルを apache ユーザーが所有する必要がある場合は、お勧めのように chown cron ジョブを設定できますが、出力を読み取るスクリプトを常に実行inotifywatchすると、応答が速くなる (ほとんどアイドル状態になる) ことがあります。

于 2016-04-21T09:54:50.273 に答える
0

apache ユーザーに rsync デーモンを実行させることを検討してください。ssh を介した rsync のトンネリングはより便利安全であるため、ほとんど使用されていませんが、この問題を回避するのに役立つ場合があります。

構成ファイルをセットアップする必要がありrsync --daemon、ディストリビューションの init システムを使用して起動するだけです。

lsyndその後、で構成できますtarget = "rsync://server/path"

サーバー間の接続がローカルで、ネットワークが信頼されている場合は完了です。それ以外の場合は、127.0.0.1 のみをリッスンするように rsync デーモンを構成し、ssh -Lポート マッピングを使用してトラフィックを暗号化されたトンネル (トンネルの所有者は重要ではありません)。

于 2016-04-21T09:30:03.363 に答える