如何在Web端里利用PHP运行管理员命令

PHP运行管理员命令

Apache + PHP

要么是管理员或root权限,要么是管理员授权给用户可执行的权限

为什么windows中php程序就可以读取外部文件,但是linux就无法读取外部文件

任意一个文件或文件夹,用 ls -l 的命令可以显示其基本信息和权限信息

drwxr-xr-x. 2 root root  6 9月  15 16:40 myfolder
-rw-r--r--. 1 root root  5 9月  15 16:42 test.txt

  • 第一栏的10个字符,共分为4个部分
    • 第一个字母: - 代表普通文件, d 代表目录
    • 第2、3、4:代表当前文件或文件夹所属用户的(owner)权限,用 u 表示
    • 第5、6、7:代表当前文件或文件夹所属用户组(group)的权限,用 g 表示
    • 第8、9、10:代表其他用户组和其他用户(other)的权限,用 o 表示
  • 权限的表示方法:
    • r 读:也可以使用数字 4 来表示
    • w 写:也可以使用数字 2 来表示
    • x 执行:也可以使用数字 1 来表示
    • 任何一个数都可以使用2的多少次方互加来表示,就像任何一个数字都可以使用10的多少次方来表示
    • 用2的多少次方来表示的话,是不会有重复的
    • user有rwx的权限,即数字为7;rw权限,即数字为6;rx权限,数字为5;wx权限,数字为3
  • linux中读取文件时,需要注意每一层级的关系,比如我需要读取一个层次较深的外部文件,我需要让该外部文件所处的每一个目录都可以被其他用户和组访问,因此该文件和该文件的所有父级目录都需要 chmod o+rx ...

一、PHP运行操作系统命令

  • 通过反引号包裹命令可以直接执行,但是也仅限于普通命令,涉及更高或管理员权限的命令是无法执行的

  • windows和linux在php文件中都是通过 添加反引号来包裹命令进行执行的

  • 查看文件或写入修改等等操作时,需要该文件支持拥有r w x 权限

    • 如果是该当前文件或文件夹所属用户(u)的文件,那就是第一个权限
    • 如果是当前文件或文件夹所属用户组(g)的文件,那就是第二个文件
    • 如果是其他用户组和其他用户(o)的文件,那就是第三个权限
  • 但是执行命令就不一样了,难道执行命令时,也是给文件加上r w x 权限吗???不应该是执行命令的用户拥有什么权限吗

那么我们现在使用的是xampp,此时apache+PHP的默认用户是谁呢

二、PHP运行只有root用户才拥有的权限

比如我们执行如下命令,在 linux 中的 xampp 中 /opt/lampp/htdocs/learn/doexec.php 文件中写入以下代码,然后通过windows来访问 192.168.230.147/learn/doexec.php

<?php
$exec = `systemctl stop filewalld`;
echo $exec;
?>

由于权限不够,访问结果就是一片白板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值