background image

在 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]