我有一个工作的shell脚本,使用killall来杀死程序的所有实例,如下所示:
killall abc
现在,我编写了一个php网页,使用shell_exec函数执行此脚本:
shell_exec('sh ./myscript.sh');
问题是我的php代码在命令行上使用“php myscript.php”正常工作,但在浏览器中不起作用!但是,我知道命令行中的用户是“root”,而php中的用户是“apache”(我用'whoami'得到这个)。 Linux发行版是使用SElinux的Centos 6。我把selinux的状态改为宽容。
有没有办法使用php使用kill命令运行脚本?
感谢您的帮助。
答案 0 :(得分:0)
你要么必须以root身份运行apache(不安全),要么更安全,你必须运行你试图杀死的命令为'apache',或者配置你的sudoers文件以授予对killall命令的apache权限:
# vim /etc/sudoers
apache localhost=(ALL) NOPASSWD:/usr/bin/killall
然后将myscript.sh更改为sudo killall abc