php中mkdir()函数的权限问题(转)
问题描述:
使用以下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);
参考文章:
原文:http://blog.csdn.net/tsxw24/article/details/7622832
php中mkdir()函数的权限问题(转)的更多相关文章
- PHP mkdir()无写权限的问题解决方法
这篇文章主要介绍了PHP mkdir()无写权限的问题解决方法,对umask做了详细解释以及mkdir()后没写权限的解决方法,需要的朋友可以参考下 使用mkdir创建文件夹时,发现这个函数有两个 ...
- 《APUE》中的函数整理
第1章 unix基础知识 1. char *strerror(int errnum) 该函数将errnum(就是errno值)映射为一个出错信息字符串,返回该字符串指针.声明在string.h文件中. ...
- Linux中文件函数(二)
一.link.linkat.unlink.unlinkat.remove函数 创建一个指向现有文件的链接的方法是使用link函数或linkat函数.函数的原型为: #include <unist ...
- PHP mkdir() 函数
定义和用法 mkdir() 函数创建目录. 如果成功该函数返回 TRUE,如果失败则返回 FALSE. 语法 mkdir(path,mode,recursive,context) 参数 描述 path ...
- mysql中find_in_set()函数的使用
首先举个例子来说: 有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文等等 .现在有篇文章他既是头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那我 ...
- python中定义函数和参数的传递问题
作者:達聞西链接:https://zhuanlan.zhihu.com/p/24162430来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 5.2.4 函数.生成器和类 ...
- linux和window下mkdir函数问题(转-锦曦月)
通过WIN32宏进行判断 window下mkdir函数 #include<direct.h> int _mkdir( const char *dirname ); linux下 ...
- [php-src]理解Php内核中的函数与INI
内容均以php-5.6.14为例. 一. 函数结构 内核中定义一个php函数使用 PHP_FUNCTION 宏 包装,扩展也不例外,该宏在 ./main/php.h:343 有着一系列类似以 PHP ...
- MySQL中的账号与权限管理
MySQL权限管理 权限系统的工作原理 MySQL权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证.不合法的用户拒绝连接. (2)对通过认 ...
随机推荐
- Cocos2d-x打包安卓apk
| 版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 下载安装安卓(android)环境 见http://www.cnblogs.com/geore/p/5793620.html,按照其 ...
- linux 文件解压
解压 tar -xvf file.tar //解压 tar包 tar -xzvf file.tar.gz //解压tar.gz tar -xjvf file.tar.bz2 //解压 tar.bz ...
- Linux查看软件安装路径,和文件的位置
查看软件是否安装:rpm -qa|grep xx 列出软件安装包安装的文件:rpm -ql 直接使用rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置 通过find去查找 ...
- java虚拟机规范(se8)——class文件格式(三)
4.5 字段 字段使用field_info结构来描述. 在同一个class文件中的两个字段不能有相同的名称和描述符. 结构的格式如下: field_info { u2 access_flags; u2 ...
- 利用hover,制作点击有缩放效果
.tab-pic-wrap .pic-wrap .list li a:hover img { transform: scale(1.03); } .tab-pic-wrap .pic-wrap .li ...
- Select.snippet
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http:/ ...
- vue项目在webpack打包后背景图片显示不了
加上 publicPath:'../../'即可
- 2019-11-7-WPF-How-to-get-plain-text-from-RichTextBox
title author date CreateTime categories WPF How to get plain text from RichTextBox lindexi 2019-11-0 ...
- JVM 和JMM的区别
首先从定义上看 JVM (Java Virtual Machine)Java虚拟机模型 主要描述的是Java虚拟机内部的结构以及各个结构之间的关系. JMM(Java Memory Model) Ja ...
- iconfont字体图标的使用方法
转载于https://www.cnblogs.com/hjvsdr/p/6639649.html 我之前因为项目用bootstrap比较多,所以使用font awesome字体图标比较多,后来接触到了 ...