首页 > 解决方案 > 为什么即使拥有完整的 visudo 权限,shell_exec 也无法工作?

问题描述

我意识到www-data使用 visudo 授予完全权限是不好的安全做法。但是,即使具有最高权限,特权 shell 命令也不起作用。

中的 PHP 代码/var/www/html/index.php

<?php
     echo shell_exec("ls"); //expected output is echoed 
     echo shell_exec("bitcoin-cli getbalance"); //does not output anything
?>

如果我自己在 shell 中输入任何一个命令,我都会得到我期望的输出。

我的 sudoers 文件如下所示:

...
root ALL=(ALL:ALL) ALL

%admin ALL=(ALL) ALL

%sudo ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

www-data ALL=NOPASSWD: ALL

为什么shell_exec("any command I like")不使用此配置?

标签: phppermissions

解决方案


推荐阅读