微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – shell_exec无法创建文件

我正在使用Nginx webserver,我正在编写一个包含文件创建的脚本,但即使我在sudoers列表中给予权限,www-data也无法创建该文件.

在我的sudoers文件中:

www-data ALL=(ALL) nopASSWD: /usr/bin/PHP, /usr/bin/python

我甚至试图给予所有权限但仍无法通过浏览器创建文件.

www-data ALL=(ALL) nopASSWD: ALL

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

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

解决方法:

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

你需要一个像sudo sh -c’echo $data> file’这样的结构.

使用chmod可能更容易为您授予用户对给定目录的写入权限.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐