详解php中如何执行系统命令-kb88凯时官网登录

来自:网络
时间:2024-06-09
阅读:
免费资源网,https://freexyz.cn/

常见方法

使用反引号执行

 

使用 exec

使用 system

windows

读取外部普通文件时

 

注意:直接读取即可。

执行系统命令

 

注意:需要管理员权限或者管理员授权才可以执行。

linux

apache

读取外部普通文件时

读取防火墙文件,文件有 r 权限,每级目录都有 rx 权限即可。

执行系统命令时

执行关闭防火墙命令(写一段 php 代码,并通过浏览器访问此页面)。

 

找到关于此命令的位置。

 whereis systemctl       # 发现位置在 /usr/bin/systemctl 

查看目录权限,发现每级目录都有 rx 权限,但依然无法执行。

 ll /usr/bin/ | grep systemctl
 ll /usr/ | grep bin
 ll / | grep usr

解决

使用 root 管理员用户

查看 apache 默认用户(写一段 php 代码,并通过浏览器访问此页面)。

 

尝试改成 root 用户

 cd /opt/lampp/etc   # 切换到 /opt/lampp/etc/ 目录
 vi httpd.conf       # 编辑 httpd.conf 文件
     /user       # 找到 user
     user root       # 改成 root 用户
     group root      # 改成 root 组

重启 lampp

 /opt/lampp/lampp restart    # 发现启动失败

xampp 集成环境为了安全性考虑不能改成 root 用户访问。

将命令的执行权限赋予给 xampp(apache)对应的用户。最后执行关闭防火墙命令,即可成功。

 vi /etc/sudoers 或 visudo  # 编辑 /etc/sudoers
 按 g  # 将光标移动到最后一行
 按 i ,添加 daemon all=(all) nopasswd:all 或 daemon all=(all) nopasswd:/usr/bin/systemctl,/usr/bin/firewall-cmd  # 添加授权指令
 # 含义:给哪个用户授权 允许哪个主机访问=模拟哪个账号执行命令 不要求输入密码:允许执行的命令路径
图片

以上就是php中如何执行系统命令的详细内容,更多关于php执行系统命令的资料请关注其它相关文章!

免费资源网,https://freexyz.cn/
返回顶部
顶部
网站地图