php上傳目錄許可權
Ⅰ 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 程序的目錄許可權
有php函數:chomd();
chmod() 函數改變文件模式。
chmod(file,mode)參數 描述
file 必需。規定要檢查的文件。
mode 可選。規定新的許可權。
mode 參數由 4 個數字組成:
第一個數字永遠是 0
第二個數字規定所有者的許可權
第二個數字規定所有者所屬的用戶組的許可權
第四個數字規定其他所有人的許可權
可能的值(如需設置多個許可權,請對下面的數字進行總計):
1 - 執行許可權
2 - 寫許可權
4 - 讀許可權
<?php
// 所有者可讀寫,其他人沒有任何許可權
chmod("test.txt",0600);
// 所有者可讀寫,其他人可讀
chmod("test.txt",0644);
// 所有者有所有許可權,其他所有人可讀和執行
chmod("test.txt",0755);
// 所有者有所有許可權,所有者所在的組可讀
chmod("test.txt",0740);
?>
目錄也是一樣的,把文件名,換成目錄路徑
Ⅲ 如何在Apache和Nginx禁止上傳目錄里PHP的執行許可權
網站程序的上傳目錄通常是不需要PHP執行解釋許可權,通過限制目錄的PHP執行許可權可以提網站的安全性,減少被攻擊的機率。
下面和大家一起分享下如何在Apache和Nginx禁止上傳目錄里PHP的執行許可權。
在虛擬主機配置文件中增加php_flag engine off指令即可,配置如下
"/website/uploads">,denyAllowfromallphp_flagengineoff
Nginx更簡單,直接通過location條件匹配定位後進行許可權禁止。
在server配置段中增加如下的配置
如果是單個目錄
location~*^/uploads/.*.(php|php5)${denyall; }
如果是多個目錄
location~*^/(attachments|uploads)/.*.(php|php5)${denyall;}
注意:這段配置文件一定要放在下面配置的前面才可以生效。
location~.php${ fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
最後給一個完整的配置示例
location~/mm/(data|uploads|templets)/*.(php)${ denyall; } location~.php${ try_files$uri/404.html; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
配置完後記得重啟Nginx生效。
Ⅳ php 上傳文件目錄許可權設置
linux 下,設置該目錄許可權為0777,或者命令行 chmod 777 文件或目錄
Ⅳ php在linux下目錄許可權的問題
http 伺服器程序跑的 php 代碼,所以這個文件的所有者是 http 伺服器所跑的用戶名和組名。
所以你新建的文件為 daemon 所有者,群組是 daemon 是正確的。因為他是 http 伺服器程序建立的,自然所有者為 http 伺服器程序所運行的所有者。
之所以 http 伺服器程序不跑 root 或者某個現實用戶的 ID ,那是安全考慮。不然你的 php 代碼被黑,你的整個系統,或者某個用戶就不保了。
從這個來看,紅旗的伺服器程序是用 daemon 用戶跑的。最安全的辦法是每個服務都單獨跑一個用戶 ID ,這個 ID 沒有任何許可權,也不加入其他的組從而保證系統絕對安全,好像 RHEL/SUSE 都是這么跑到。