shell_execがファイルを生成できません

shell_execがファイルを生成できません

nginx Webサーバーを使用してファイル生成を含むスクリプトを作成していますが、sudoersリストから権限を付与してもwww-dataからファイルを生成することはできません。

私のsudoersファイルから:

www-data ALL=(ALL) NOPASSWD: /usr/bin/php, /usr/bin/python

すべての権限を付与しようとしましたが、ブラウザでファイルを作成することはできません。

www-dataALL=(ALL) NOPASSWD: ALL

私の単純なスクリプトはファイルを生成しようとしており、端末を介して機能しますが、ブラウザでは機能しません。

<?php
$data = "test";
shell_exec("sudo /bin/echo $data > /var/www/api/v3/monitoring/iam/temp");

ベストアンサー1

入力すると、sudo echo $data >fileシェルは最初に通常のユーザーとして出力ファイルを開き、sudo echo開いたファイルに関連付けられた出力として実行されます。したがって、echoコマンドはrootとして実行されますが、通常のfileユーザーとして開きます。

次のものが必要ですsudo sh -c 'echo $data >file'

.NETを使用してユーザーに特定のディレクトリへの書き込み権限を付与する方が簡単な場合がありますchmod

おすすめ記事