php的mkdir()函数创建文件夹比较安全的权限设置方法


Posted in PHP onJuly 28, 2014

问题描述:
使用以下php代码创建了一个目录,期望目录的权限是0777,实际结果是0755

mkdir('./aa/',0777);

分析与测试结果:

 1.mkdir()函数指定的目录权限只能小于等于系统umask设定的默认权限。

如linux默认的umask一般0022, 即创建目录的默认权限是0755, 所以这时php  mkdir('./aa/',0777) 得到目录的权限是0755.

xw@xw-X201:~/Desktop/dd/aa$ umask

0022

xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw/',0777);"

xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw1/',0755);"

xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0747);"

xw@xw-X201:~/Desktop/dd/aa$ ll

总用量 20

drwxrwxrwx 5 xw xw 4096 2012-06-01 11:58 ./

drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../

drwxr-xr-x 2 xw xw 4096 2012-06-01 11:57 xw/

drwxr-xr-x 2 xw xw 4096 2012-06-01 11:58 xw1/

drwxr--r-x 2 xw xw 4096 2012-06-01 11:58 xw2/

把系统默认权限改为777,mkdir()可以指定更大权限了
xw@xw-X201:~/Desktop/dd/aa$ umask 000

xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/',0777);"

xw@xw-X201:~/Desktop/dd/aa$ ll

总用量 12

drwxrwxrwx 3 xw xw 4096 2012-06-01 12:08 ./

drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../

drwxrwxrwx 2 xw xw 4096 2012-06-01 12:08 xw2/

2.chmod()函数不受系统umask影响,可以设置比系统默认权限大的权限。

xw@xw-X201:~/Desktop/dd/aa$ umask

0022

xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw1/',0777);"

xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw2/');"

xw@xw-X201:~/Desktop/dd/aa$ php -r "mkdir('./xw3/');chmod('./xw3/',0777);"

xw@xw-X201:~/Desktop/dd/aa$ ll

总用量 20

drwxrwxrwx 5 xw xw 4096 2012-06-01 12:12 ./

drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../

drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw1/

drwxr-xr-x 2 xw xw 4096 2012-06-01 12:11 xw2/

drwxrwxrwx 2 xw xw 4096 2012-06-01 12:12 xw3/

3.系统的mkdir命令可以设置大于默认值的权限。

xw@xw-X201:~/Desktop/dd/aa$ umask

0022

xw@xw-X201:~/Desktop/dd/aa$ mkdir -m0777 xw

xw@xw-X201:~/Desktop/dd/aa$ ll

总用量 12

drwxrwxrwx 3 xw xw 4096 2012-06-01 12:18 ./

drwxr-xr-x 6 xw xw 4096 2012-06-01 11:26 ../

drwxrwxrwx 2 xw xw 4096 2012-06-01 12:18 xw/

总结:

php若要创建一个有读写权限的目录,最好使用以下代码,不要直接使用mkdir函数指定权限,以避免系统umask的影响

mkdir('./xw/');

chmod('./xw/',0777);
PHP 相关文章推荐
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 PHP
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
php获取用户IPv4或IPv6地址的代码
Nov 15 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
php笔记之:文章中图片处理的使用
Apr 26 PHP
探讨php中header的用法详解
Jun 07 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
WordPress中设置Post Type自定义文章类型的实例教程
May 10 PHP
php中error与exception的区别及应用
Jul 28 #PHP
浅析get与post的一些特殊情况
Jul 28 #PHP
thinkphp学习笔记之多表查询
Jul 28 #PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 #PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 #PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 #PHP
PHP实现多图片上传类实例
Jul 26 #PHP
You might like
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
js实现转动骰子模型
2019/10/24 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
python对象及面向对象技术详解
2016/07/19 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
水产养殖学应届生求职信
2013/09/29 职场文书
挑战杯创业计划书的写作指南
2014/01/07 职场文书
幼儿园小班评语
2014/04/18 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python
如何优化vue打包文件过大
2022/04/13 Vue.js