Linode で LAMP スタックを実行しています。Ubuntu のバージョンは Lucid です。
PHP スクリプトがコマンドmkdir()またはmove_uploaded_fileコマンドを実行すると、新しく作成されたフォルダー/ファイルが UNIX ユーザー「Grusha」によって所有されてしまいます。このユーザーを作成しましたが、ファイルを所有するべきではありません。www-dataWeb フォルダー全体は、新しいフォルダー/ファイルが移動しているフォルダーを含む (拡張子による) と同様に、によって所有されます。
ユーザーの /etc/passwd 行は次のようになります。
grusha:x:1000:1003:,,,:/home/grusha:/bin/bash
/etc/group は次のとおりです。
grusha:x:1003:
Grusha は、作成された PHP セッションも所有しますが、他には何もありません。システム上のプロセスやファイルも Grusha として実行されません。
公開鍵でログインしましたが、通過するユーザーは Grusha ではありません (ルートでもありません)。
Grusha を削除すると、Apache を再起動できなくなります。取得bad usernameし、再起動に失敗します。PHP セッションも機能しません。
最後に Grusha を再度追加すると、サーバーが起動し、スクリプトが Grusha ではなく Grusha が所有するファイルを作成することを除いて、すべてが機能しますwww-data。
できる限り調べてみましたが、情報が見つかりません。私httpd.confは空です。私apache2.confには次の行が含まれています:
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
これらの変数は のように定義さwww-dataれ/etc/apache2/envarsます。
誰か提案があれば、私は感謝します。
どうもありがとう、エリオット