首先,php的執行者你要知道,看進程明確執行者是哪個賬戶,可以使用mkdir(dir, 0777)設置操作許可權
Ⅱ PHP怎麼獲取文件目錄許可權
PHP獲取文件目錄許可權函數fileperms,使用這個函數可以文件或者目錄屬性。
例子程序:
<?php
$perms=fileperms('/etc/passwd');
if(($perms&0xC000)==0xC000){
//Socket
$info='s';
}elseif(($perms&0xA000)==0xA000){
//SymbolicLink
$info='l';
}elseif(($perms&0x8000)==0x8000){
//Regular
$info='-';
}elseif(($perms&0x6000)==0x6000){
//Blockspecial
$info='b';
}elseif(($perms&0x4000)==0x4000){
//Directory
$info='d';
}elseif(($perms&0x2000)==0x2000){
//Characterspecial
$info='c';
}elseif(($perms&0x1000)==0x1000){
//FIFOpipe
$info='p';
}else{
//Unknown
$info='u';
}
Ⅲ PHP寫入文件許可權問題
首先,fopen不是「寫入文件」。 設777是文件系統的用戶許可權。php打開文件,除了受文內件系容統的限制,還受apache和php本身安全性限制。例如,apache限定了訪問許可權只限於/www,而你要操作/log的話,是不可能的,盡管/log里文件系統設了777。還有,在手冊里fopen里有說「如果激活了 安全模式 或者 open_basedir 則會應用進一步的限制。」希望對你有幫助。
Ⅳ php調用linux命令更改文件許可權
在php教程中調用命令的函數是
string exec(string command, string [array], int [return_var]);
如
exec( "vpopmail ");
echo exec('whoami');
再看一實例
functionexec_enabled(){
$disabled=explode(',',ini_get('disable_functions'));
return!in_array('exec',$disabled);
}
<?php
$tmp=exec("c:Imagegm.execonvertc:Imagefile1.tiffc:Imagefile1.jpg",$results);
?>
還有一種命令是
php通過函數system()調用系統命令。
stringsystem(string$command[,int&$return_var])
實例
system('asterisk-vvvvvvvvvvvc');
system()是一樣的函數C的,它執行給定的命令和輸出結果的版本。該system()的調用也嘗試自動刷新網頁伺服器的輸出緩沖器在每個輸出
行如果PHP運行作為伺服器模塊。如果你需要執行一個命令,並已全部通過直接從背面沒有任何干擾的命令數據,使用passthru()函數。
$last_line=system('ls',$retval);
functionmy_exec($cmd,$input='')
{$proc=proc_open($cmd,array(0=>array('pipe','r'),1=>array('pipe','w'),2=>array('pipe','w')),$pipes);
fwrite($pipes[0],$input);fclose($pipes[0]);
$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
$stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
$rtn=proc_close($proc);
returnarray('stdout'=>$stdout,
'stderr'=>$stderr,
'return'=>$rtn
);
}
var_export(my_exec('echo-e$(</dev/stdin)|wc-l','h el lo'));
實例三
$cmd="date";
$output=system($cmd);
printf("SystemOutput:$output");
exec($cmd,$results);
printf("ExecOutput:{$results[0]}");
php調用linux命令的許可權問題
你可以使用定時任務執行你要調用的php,這時的許可權就是root,
php通過函數system()調用系統命令
php一般是以apache用戶身份去執行的,把apache加入到存儲你文件的父文件夾屬組里去,然後改該父文件夾許可權為775,這樣屬組成員就有寫的
許可權,而apache屬於這個組就可以改寫該目錄下所有文件的許可權,當然,屬組最好不要是root,你可以為該文件夾改個其它普通用戶組。
改apache/php的運行用戶方法不安全
Ⅳ php中以777許可權保存文件
1.網站的文件所有者帳號是什麼?
2. apache/php-fpm以什麼帳號身份運行?
3.網站哪些目錄需要有寫入許可權(如日誌生成、附件上傳等)
針對這個問題,建議的設置如下:
1.網站所有者,可設置為ftp, www帳號
2.nginx/php-fpm/apache,建議以nobody帳號運行,反正不能使用網站文件所有者帳號。
3.需要可寫許可權的目錄,手工設置許可權為777即可
4.php生成的日誌、附件文件的所有者會是nobody, 這時www,ftp帳號卻無法修改、刪除這些文件。那麼在php生成文件時,可調用chmod($filename, 0777)。即解鈐還需系鈐人。
這樣,php腳本只能向指定的目錄中寫入文件,一方面規范了程序代碼的行為,另一方面,也一定程度上提高了網站的安裝性
Ⅵ 用PHP對文件夾進行訪問許可權設置
把這個文件夾放到網站根目錄以外的目錄,這樣通過url就訪問不到了。
然後用php來讀取並輸出文件里的內容,詳細方法參考php支持斷點續傳用的代碼。
Ⅶ php網站文件目錄許可權如何開
將許可權設置成777就可以了啊。chmod 777 【文件名】
「777」代表許可權,對應rwdrwdrwd,從左往右第一位『7』代表屬主的許可權對應第一組『rwd』,r標識可以讀,w代表可以寫,x代表可以執行。
第二位『7』代表屬組的許可權,第三位『7』代表所有人的許可權。例如只允許屬主讀寫執行賦予700許可權對應rwd許可權。也可以使用a、u、字母表示許可權,比如chmod a+x 【文件名】 是賦予任何人執行的許可權,chmod a+r 【文件名】是賦予所有人讀得許可權,chmod a+w 【文件名】是賦予所有人寫的許可權,等等。
不過設置777不安全,最好設置成可讀就可以了,744應該可以。