PHP函数 exec 获取更高权限(sudo)

在服务器环境 apache + php下,PHP函数exec()执行whoami得到的结果是 apache,说明是以用户apache来执行命令。

$result = exec("whoami", $outcome, $status);
var_dump($outcome);
//array(1) { [0]=> string(6) "apache" }

查看apache的配置文件/etc/httpd/conf/httpd.conf如下:
vi /etc/httpd/conf/httpd.conf
在这里插入图片描述

可通过给用户apache添加可使用sudo命令的权限,来使exec()函数获取更高执行权限。

以超级用户(如root用户)执行 visudo 来编辑配置文件。

在配置文件中添加
apache ALL=(ALL) NOPASSWD:ALL
如下图:
在这里插入图片描述

至此,用户apache会有近似root的执行权限。
在执行的命令前添加sudo,例:

$result = exec("sudo service postfix restart", $outcome, $status);
var_dump($outcome);
// array(2) {
//   [0]=>
//   string(25) "关闭 postfix:[确定]"
//   [1]=>
//   string(26) "启动 postfix: [确定]"
// }

更多关于sudo命令的权限配置可移步
http://man.linuxde.net/sudo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值