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 都是这么跑到。