#include
#include
#include
#include
char cmd[256];
int main(int argc,char **argv)
{
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命令
sprintf(cmd,"wine /bin/pxxxcmd.exe %s %s",argv[1],argv[2]);
printf(cmd);
system(cmd);
return 0;
}
gcc cmd.c -o cmd
chmod u+s cmd
将cmd放在网站目录下,即可在PHP脚本中通过此C程序调用ROOT才能执行的程序$cmd = "/home/ftp/s/st/wwwroot/cmd " . $file ." " .APP_ROOT.'/upload/tmp/';