2012-04-10 1 views
0

私はLinodeでLAMPスタックを実行しています。 UbuntuのバージョンはLucidです。PHPがカーテン機能を実行すると、unixユーザがwww-dataを奪い取っているようです

PHPスクリプトがmkdir()またはmove_uploaded_fileコマンドを実行すると、新しく作成されたフォルダー/ファイルはUNIXユーザー 'Grusha'によって所有されています。私はこのユーザーを作成しましたが、ファイルを所有するべきではありません。ウェブフォルダ全体はwww-dataによって所有されており、新しいフォルダ/ファイルが移動しているフォルダを含む(拡張子で)。

ユーザーの/ etc/passwdの行は次のようである:彼らはあまりにも作成しているよう

grusha:x:1003: 

Grushaは、PHPのセッションを所有している、けれども:

grusha:x:1000:1003:,,,:/home/grusha:/bin/bash 

と/ etc/groupはこれです他には何もない。システム上のプロセスやファイルはGrushaとして実行されません。

私は公開鍵でログインしますが、そのユーザーはGrusha(ルートも)ではありません。

Grushaを削除すると、Apacheを再起動できなくなりました。 bad usernameが表示され、再起動に失敗します。私のPHPセッションも動作しません。

最後に、Grushaをもう一度追加すると、サーバーは起動し、スクリプトはGrushaが所有するファイルで、www-dataではなく、すべてのスクリプトが動作します。

私は可能な限り探していますが、情報は見つかりませんでした。私のhttpd.confは空です。

User ${APACHE_RUN_USER} 
Group ${APACHE_RUN_GROUP} 

をそして、それらの変数は/etc/apache2/envarswww-dataとして定義されています。私のapache2.confは、これらの行が含まれています。

誰かが何か提案があれば、私は感謝します。

どうもありがとう、 エリオット

+0

TARからファイルを解凍しましたか? Grushaとして実行中のプロセスはありますか? – 0xC0000022L

+0

私はTARから解凍しませんでしたが、サイトのバックエンドにログインしている最中に "トップ"を実行すると、Grushaが頻繁に表示されます。このように: 29205 grusha 20 0 52464 8044 3156 S 0 0.8 0:00。03 apache2 これはまったく役に立ちますか? – esp

+0

私はそれをコピーするには速くなければなりませんでした。 – esp

答えて

0

suPHPモジュールはおそらく有効になっています。その機能は、www-dataではなく、スクリプトを所有しているユーザーのユーザーIDでPHPコードを実行できるようにすることです。これは共有サーバーでは非常に危険です。 /etc/apache2/mods-enabled/suphp.load/etc/apache2/mods-enabled/suphp.confを削除してsuPHPをオフにしてみてください。

問題がない場合は、grushaに実際にwww-data/etc/passwd)という数字のユーザーIDがないことを確認してください。それはおそらくないだろう。

+0

お書き込みいただきありがとうございますが、これらのソリューションは動作しません。 - これらのmodファイルは、mods対応のディレクトリに存在しません。 - www-dataは/ etc/apache2/envvars にユーザーとグループとして定義されています。ユーザーIDは同じではありません。 grusha::/ etc/passwdファイルから2行のx:1003::1000 ,,,:/ホーム/ grusha:/ binに/ bashのAND WWW-データ:X:33:33:WWW-データ:は/ var/www:/ bin/sh もう一度おねがいします。 – esp

+0

さて、私は[linode](http://www.linode.com/)について何も知らないが、suPHPを有効にするような設定をしているかもしれない。 '/ etc/apache2/mods-enabled'はDebianなどで使用されていますが、linodeは他の規約を使用しているかもしれません。まだ助けがなければ、他の人に別のアイデアがあることを願っています。 – Celada

+0

suPHPについて読んだことは、おそらく原因と思われます。しかし、そこにはない。そしてGrushaはサイトの構造で何も所有していないので、おそらくsuPHPは責任を負いません。とにかくそれは良い考えでした。 – esp

0

ああ、これが解決されました。謝罪。
私は/ etc/apache2/sites-enabled /にmpmディレクティブを持っていたので、Apacheがgrushaとして動作するようになりました。
どのように起こったのかわかりませんが、いずれにしても修正されています。 あなたのおかげで私の問題を考えてくれてありがとう。

関連する問題