在
PHP 中 执行 root 命令的办法
需要任何外部工具就可以实现用
PHP 执行 root 命令.
平台
:Linux. 实验命令 iptables 当前的目录是/var/www/html/http
写程序的时候
用 root 用户
大家都知道
iptables 非 root 用户不能运行.
首先写个
C 程序 命名为:ipt.c
[CODE]
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
uid_t uid ,euid;
uid = getuid() ;
euid = geteuid();
printf("my uid :%u\n",getuid()); //这里显示的是当前的 uid 可以注释掉.
printf("my euid :%u\n",geteuid()); //这里显示的是当前的 euid
if(setreuid(euid, uid)) //交换这两个 id
perror("setreuid");
printf("after setreuid uid :%u\n",getuid());
printf("afer sertreuid euid :%u\n",geteuid());
system("/sbin/iptables -L"); //执行 iptables -L 命令
return 0;
}
[/CODE]
编译该文件
gcc -o ipt -Wall ipt.c 在该路径下生成 ipt 这个可执行文件. 如果现在用 PHP 网页
调用
该 ipt 的话,即使 setreuid 了 也是不行的. 接下来要做的是 chmod u+s ./ipt
ls 一下
-rwsr-xr-x 1 root root 5382 Jul 2 21:45 ipt
s 位已经设置上了. 再写一个 php 页面调用它.
[CODE]
<?php
echo '<pre>';