php 執(zhí)行系統(tǒng)命令的方法
更新時(shí)間:2009年07月07日 16:56:44 作者:
在一個(gè)項(xiàng)目里用到這樣的東西,用另外一個(gè)服務(wù)做了一些事情,生成的文件權(quán)限,通過php 無法讀取,測試了很多種方式都沒能實(shí)現(xiàn),在網(wǎng)上找了下,可以用c寫一個(gè)代理來實(shí)現(xiàn),本人就實(shí)現(xiàn)了一下,果真可以。
代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
int main(int argc,char * argv[])
{
uid_t uid,euid;
char cmd[1024]="chmod -R 777 ";
uid =getuid();
euid = geteuid();
//printf("param %s\n",strcat(cmd,argv[1]));
//exit(0);
//printf("uid:%un. eudi=%un\n",getuid(),geteuid());
if(setreuid(euid,uid))
perror("setreuid");
//printf("uid:%un. eudi=%un\n",getuid(),geteuid());
system(strcat(cmd,argv[1]));
return 0;
}
現(xiàn)在說下,在linux下面,gcc編譯,以及復(fù)權(quán)的問題:
執(zhí)行
gcc -Wall -o phpchmod phpchmod.c
執(zhí)行
chmod u+s ./phpchmod
php代碼的使用:
$chmod_line = dirname(__FILE__)."/phpchmod ./dest_dir/";
system($chmod_line);
復(fù)制代碼 代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
int main(int argc,char * argv[])
{
uid_t uid,euid;
char cmd[1024]="chmod -R 777 ";
uid =getuid();
euid = geteuid();
//printf("param %s\n",strcat(cmd,argv[1]));
//exit(0);
//printf("uid:%un. eudi=%un\n",getuid(),geteuid());
if(setreuid(euid,uid))
perror("setreuid");
//printf("uid:%un. eudi=%un\n",getuid(),geteuid());
system(strcat(cmd,argv[1]));
return 0;
}
現(xiàn)在說下,在linux下面,gcc編譯,以及復(fù)權(quán)的問題:
執(zhí)行
gcc -Wall -o phpchmod phpchmod.c
執(zhí)行
chmod u+s ./phpchmod
php代碼的使用:
復(fù)制代碼 代碼如下:
$chmod_line = dirname(__FILE__)."/phpchmod ./dest_dir/";
system($chmod_line);
您可能感興趣的文章:
- PHP打開和關(guān)閉文件操作函數(shù)總結(jié)
- linux下php-fpm開啟關(guān)閉使用方法
- PHP 處理TXT文件(打開/關(guān)閉/檢查/讀取)
- PHP計(jì)劃任務(wù)之關(guān)閉瀏覽器后仍然繼續(xù)執(zhí)行的函數(shù)
- php中執(zhí)行系統(tǒng)命令的方法
- PHP系統(tǒng)命令函數(shù)使用分析
- php中使用exec,system等函數(shù)調(diào)用系統(tǒng)命令的方法(不建議使用,可導(dǎo)致安全問題)
- 讓PHP以ROOT權(quán)限執(zhí)行系統(tǒng)命令的方法
- php實(shí)現(xiàn)用手機(jī)關(guān)閉計(jì)算機(jī)(電腦)的方法
相關(guān)文章
php getimagesize 上傳圖片的長度和寬度檢測代碼
getimagesize — 取得圖像大小2010-05-05
php json_encode()函數(shù)返回json數(shù)據(jù)實(shí)例代碼
php返回json數(shù)據(jù)用到j(luò)son_encode()函數(shù),此函數(shù)會生成一個(gè)標(biāo)準(zhǔn)的json格式的數(shù)據(jù),實(shí)例代碼如下2014-10-10
php 使用file_get_contents讀取大文件的方法
本文介紹了在php中使用file_get_contents函數(shù)讀取大文件的方法,并附上了示例以及使用小技巧,非常的實(shí)用,這里推薦給大家2014-11-11
PHP轉(zhuǎn)Go之?dāng)?shù)組的正確使用詳解
這篇文章主要為大家對比一下PHP中的Array和Golang中的 Array&Slice&Map,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09
解析zend studio中直接導(dǎo)入svn中的項(xiàng)目的方法步驟
本篇文章是對zend studio中直接導(dǎo)入svn中的項(xiàng)目的方法步驟進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
SWFUpload與CI不能正確上傳識別文件MIME類型解決方法分享
問題:swfupload上傳任何文件的mime類型均為application/octet-stream。2011-04-04

