首先修改 /etc/sudoers:
#Defaults requiretty #这行前面加注释符号
apache ALL=(ALL) NOPASSWD:ALL
用户 主机=映射为谁的权限 不需要密码:所有操作
web服务以哪个用户运行,就改掉apache。
需要只允许哪几个脚本就改为:
apache ALL=(root) NOPASSWD:/home/a.sh,/home/b.sh #每个脚本逗号隔开
上面参数解释:
apache这个用户以root权限,不需要密码去运行/home/a.sh和/home/b.sh两个脚本
在php中调用:
<?php if (!function_exists('exec')) { echo 'exec函数被禁用'; } exec("/usr/bin/sudo /home/a.sh", $result, $status); ?>
一般情况下,exec这个函数,包括shell_exec 、system 等做为危险函数会被禁用,如果禁用了,去php.ini配置文件取消禁用。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/3638.html