PHP shell_exec权限被拒绝

6

shell_exec("touch /Users/Nerses/Downloads/ads.txt 2>&1")

我有一个关于PHP exec(shel_exec)函数的问题。它提示我没有权限执行该命令。

如何打开这些权限?


请问您能否编辑问题并复制粘贴完整的错误信息? - Álvaro González
touch: /Users/Nerses/Downloads/ads.txt: 权限被拒绝 - user3918128
它说您没有编辑文件的权限。这样的文件位于“Nerses”的主目录中。我猜您是使用Apache用户或类似的方式运行PHP-您将需要调整文件系统权限(假设SELinux或其他工具不会阻止进一步访问)。 - Álvaro González
1个回答

13

你的 PHP 代码试图访问 /Users/Nerses/Downloads/ads.txt,正如你所看到的,那个文件夹是由名为"Nerses"的用户拥有的。

只有他(和root)才能访问它(除非你更改该文件夹的权限)。

通常情况下,执行 shell_exec 的用户称为 www-data,因此要给该用户授权,或更改该文件夹中的用户权限。

另一种选择是执行

shell_exec('sudo -S YOUR COMMAND');

您可以使用该命令检查您所使用的用户

shell_exec('whoami');

谢谢!我的文件所在的文件夹归属于与Apache不同的用户,因此将父文件夹的所有权更改为Apache的用户和组即可解决问题。 - GTodorov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接