![授予 www-data 用户运行本地脚本的权限](https://linux22.com/image/1315841/%E6%8E%88%E4%BA%88%20www-data%20%E7%94%A8%E6%88%B7%E8%BF%90%E8%A1%8C%E6%9C%AC%E5%9C%B0%E8%84%9A%E6%9C%AC%E7%9A%84%E6%9D%83%E9%99%90.png)
我实际上尝试使用 PHP 脚本启动 gnome 终端,但似乎用户遇到了一些问题www-data
;
我的脚本仅ls -l
在目录中发出命令(仅用于测试)并且我使用本地网站上的 php 页面运行它。
这是我的 bash 脚本中的 gnome-terminal 命令(双击时它可以完美运行):
gnome-terminal --working-directory=/opt/cuckoo -x bash -c "ls -l"
以下是 php 页面上的调用:
system("/my/path/to/the/script/script.sh");
我的脚本中有一些“回声”,当我尝试在网站上运行该脚本后,我在 PHP 页面中看到了它。
我认为www-data
没有权限,因此我尝试使用命令授予用户脚本的所有权,但chown
没有结果,最后我尝试了该sudo visudo
命令并www-data
仅为该脚本授予了 root 权限(带有NO PASSWD
arg)。
没用。我尝试更改 php 命令,将其替换system
为exec
,然后使用 显示结果,$output
但结果还是一样。
PHP 真的可以运行终端吗?或者我只是自欺欺人?
答案1
你必须考虑的事情
- 如果你想要
ls
一个目录,“who”运行该命令就可以横穿该文件夹(因此,+x 权限是绝对必要的) - 你的 php 脚本是否在服务器下运行?如果是,也许你必须更改所有者以同意这一点
- 取决于第二点:请注意当你chown在文件上