在 PHP 执行 root 命令
在学习 C
以前 学过一段时间的 PHP, 哪个时候需要用 PHP 来运行 root 命令,一直未果,直到
有一天搜索到了 super 这个插件.
随着学习 C 的日子多了.发现可以用 C
语言来包裹 要运行的外部命令. 实验了一下.成功了.
不需要任何外部工具就可以实现用 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]