0

私のデフォルトのcpanelセットアップは、ユーザー「nobody」としてapacheを実行します。したがって、ファイルを出力するブラウザーを介してphpスクリプトを実行すると、そのファイルの所有権はnobody:nobodyになります。ユーザー「fred」としてログインしたcronジョブからスクリプトを実行すると、出力ファイルはfred:fredによって所有されます。同じファイルを上書きするには、ブラウザーとcronの両方が必要です。私が抱えている問題は、一方の「ユーザー」がファイルを作成した場合、もう一方のユーザーはファイルを上書きできないということです。根本的な問題がどこにあるのか、そして考えられる解決策を教えてください。ファイルのアクセス許可は0775です。

  • グループを設定する必要がありますか?ユーザーを誰とも同じグループに追加しませんか?もしそうなら、どのように?
  • cronジョブをユーザーnobodyとして実行するにはどうすればよいですか?

どうもありがとう、ロイド

4

2 に答える 2

0

ファイルのパーミッションを0777に変更してからコードを実行してみてください。しかし、その場合、誰でもファイルを編集できるため、セキュリティ上の問題が生じます。

次の目的で実装する必要があるロジックがあります。

  1. 一時ファイルの内容を実際のファイルにコピーするシェル スクリプトを作成します。
  2. PHP から一時ファイルのみを更新する必要があり、一時ファイルにはすべてのユーザーの読み取り権限があるため、シェルはそれを読み取ることができます。
  3. ssh2_execコマンドを使用して、Linux ユーザー名とパスワードでシェル スクリプトを実行します。

ssh2_execマニュアルについては、次のリンクに従ってください: http://php.net/manual/en/function.ssh2-exec.php

これで問題が解決することを願っています。

于 2013-03-08T08:14:14.567 に答える