shell_exec 无法创建文件

Mbo*_*boy 4 php

我正在使用 nginx 网络服务器,我正在编写一个包含文件创建的脚本,但即使我在 sudoers 列表中授予权限,www-data 也无法创建文件。

在我的 sudoers 文件中:

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

我什至尝试授予 ALL 权限,但仍然无法通过浏览器创建文件..

www-data ALL=(ALL) NOPASSWD: ALL

我的简单脚本只想创建一个文件,它可以通过终端运行,但不能在浏览器上运行。

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

mic*_*has 5

如果您键入,sudo echo $data >file您的 shell 将首先以普通用户身份打开输出文件,然后运行sudo echo时将输出连接到已打开的文件。因此,该echo命令以 root 身份运行,但file以普通用户身份打开。

你需要一个像sudo sh -c 'echo $data >file'.

也许使用chmod.