PHP执行root命令
在玩C 以前 玩过一段时间的PHP, 哪个时候需要用PHP 来运行root命令,一直未果,直到有一天搜索到了super这个插件.
随着玩C的日子多了.发现可以用C语言来包裹 要运行的外部命令. 实验了一下.成功了.
不需要任何外部工具就可以实现用PHP 执行root命令.
我下面就把方法发布给大家,有需求用php来运行root命令的朋友可以不用发愁了.
平台:Linux. 实验命令iptables 当前的目录是/var/www/html/http
写程序的时候 用root用户
大家都知道iptables 非root用户不能运行.
首先写个C程序
命名为:ipt.c
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
uid_t uid ,euid;
char cmd[1024];
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&nb
相关文档:
最近在弄nginx和xen+php.中间也费了不少的周折.记录一下.也算一个小成果.
操作系统版本,最后还是选择CentOS-5.4-x86_64-bin-DVD.iso.
CentOS-5.4-x86_64-bin-DVD.iso 的安装:
安装的时候基本上lib和开发工具都要选.桌面的开发环境我也都选了.
说不定哪个函数支持就要用到这个库.
mysql-5.1.41.tar.gz:
据说更高版本的 ......
<?php
/*
* -------------------------------------------------
* Author : Fanglor
* Email : Fanlor@163.com
* Url : www.skyleft.com
* Date : 2009-10-13
* -------------------------------------------------
*/
function arr_foreach ($arr) {
if (!is_array ($arr)) {
return fa ......
http://blog.csdn.net/microji/archive/2008/12/19/3551042.aspx
做一个首页调用图像,有时候往往需要获得固定大小的图像,因为首页的图像位置通常由设计人员指定好了,如果是做最新发布图像调用,因为不知道客户会上传什
么比例的图像,所以,有时候也就没有办法确定图像的比例,前台页面编写人员通常会采用固定 i ......
环境软件版本介绍:
APACHE 2.0.59
PHP5.2.3
MYSQL5.0.45
GD-2.0.35
Zend Optimizer v3.3.0
&n ......
最近弄php,发现下载的phpEclipse不能调试,昨天就用了一个下午的时间搭建了php的调试环境。发现网上的关于php调试的文章让人有点乱,就整理下写成这篇文章,希望对大家有些帮助。
在网上查好像是有两种调试的工具:Xdebug和Zend Debugger,我现在用的是Xdebug。我主要就说说xampp,Eclipse,pdt,xdebug构建php的调试环 ......