web-dev-qa-db-ja.com

自動アップグレードをより簡単にするためのApache/Linux構成の変更

私はこれに触れているように見える いくつかの投稿 を読んでいます((またはおそらくそれに対処するが、それは私の頭の上に起こっている)。 Unixは私の長年の強みではありません。

私はFedoraサーバーを継承していますが、自動アップグレードに関してはちょっとでこぼこです。

私が気づいた2つのこと:1. FTPユーザーとパスワードの入力を促されます。クレデンシャルをハードコーディングすることに頼らずにこれを排除したい(いくつかの理由で)。2.最新の3.3.1アップデートはアクセス許可のために失敗する(以前のアップグレードは失敗しなかった)。この問題を回避するには、メインのwpディレクトリにあるSudo chmod -R g + w ./*を使用しますが、毎回行うのは面倒なことです。

肝心な点:ものはうまくいくが、それは私が望む以上の仕事である。

現時点では、すべてが 'Apache'ユーザーの下で実行されているようです。これは、FTPおよびファイル/フォルダーの変更/編集を行うさまざまな人々のための同じグループです。しかし、これらのユーザーによって作成された新しいファイル/フォルダにはグループ書き込みモードが設定されていないため、手動で作成する必要があります。

何かご意見は?私はunixのバカなので、少しずつ段階的に説明する必要があります。

ありがとうございます。

T

3
Tom Auger

最も簡単な答えは:

かなり標準的なRedHat/CentOS/Fedoraサーバーを使っている限り、あなたのWordPressディレクトリの下にある全てがApache:apacheに属していることを確認してください。これにより、FTP資格情報の入力を求められなくなります。

このようにすることの利点は、ほとんどすべての状況で、Apacheがそのシェルとして/ bin/falseまたは/ sbin/nologinを設定していることです。これにより、誰かがあなたのボックスへのシェルアクセスを得るためにApacheユーザーを悪用するのを防ぎます。

Umaskがおかしく設定されている有効なシェルを持つユーザーから許可を継承しているディレクトリーによって、あなたはたぶんつまずいていると思います。すべてのものをApache:apacheにあてはめて、2、3のテストアップデートを行い、それがあなたが遭遇した問題の99%を解決しないかどうか確かめてください。

1
ZaMoose

これに対する答えはかなり複雑です。

(複数のWebサイトを実行している)共有サーバーでは、PHPにsetuidプロセスを(なんらかの手段で)使用すると、ユーザー内のセキュリティがさらに強化されます。 2人のユーザーがサーバーにアクセスし、それらのスクリプトが単一の「Apache」ユーザーとしてではなく、それらのユーザーとして実行される場合、Web経由で1つのサイトに侵入する誰かが「Apache」の特権ではなくそのユーザーの特権を取得するだけです。これはもっと大きくなります(例えば、Apacheはそれらを実行するために全員のWebファイルを見ることができますが、 "otto"は "bob"のファイルを見ることができません)。

この場合、WordPressは「Apache」ではなく「otto」として実行されます。それは "otto"として実行されており、WPファイルは "otto"によって所有されているので、ファイルを直接書き込むことができ、FTP認証情報を必要としません。

なるほど、それはすべて所有権に関することです。ファイルがWPが実際に実行されているのと同じユーザーによって所有されている場合は、directメソッドが使用されます。そうでない場合は、FTP方式(またはその他)にフォールバックする必要があります。アップグレード中の重要なことは、ファイルの所有権が変わらないことです。 Apacheユーザーとして直接書き込もうとした場合、 "Apache"が結果のファイルを所有することになります。これは、専用サーバーのセキュリティ上のリスクとなる可能性があります。

専用サーバーの場合、PHPを 'Apache'の下で実行しながら、非Apacheユーザーがファイルを所有することが最も安全です。そのような状況では、おそらくそれらのファイルを所有するためだけの特別なユーザーをセットアップすることが好ましいかもしれません。その後、アップグレードするための資格情報をwp-configファイルに入れることができます。たとえ何らかの方法で盗まれたとしても、これらの資格情報は実質的に何もアクセスできない場所に限定されるため、脅威となることはありません。WPファイル自体。それから、誰かが侵入した場合、彼らは "Apache"(これは限定的な特権を持つ)として侵入するか、またはカスタムWPユーザー(これも限​​定的な特権を持つ)としてコードを実行することができます。

その考えは、システムに問題を見つけたユーザーの能力を制限することです。誰かが弱点を見つけたとき、彼らはさらに突破したプロセスが実行されているというユーザーの特権によってさらに制限されます。

1
Otto

簡単な答えはあなたのサーバー上でsuPHPを有効にすることです。そうすればWordPressはApacheとしてではなくそれ自身のユーザーとして実行することができます。

Ottoはここでもっと説明しています

1
Chip Bennett