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

问题描述:
使用以下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);

时间: 2024-10-26 23:24:52

php的mkdir()函数创建文件夹比较安全的权限设置方法_php实例的相关文章

win8.1系统让文件夹视图变统一的设置方法

  win8.1系统让文件夹视图变统一的设置方法 操作步骤: 1.在开始菜单搜索栏或者运行中输入regedit后回车,打开注册表编辑器; 2.定位到:HKEY_CURRENT_USERSoftwareClassesLocal SettingsSoftwareMicrosoftWindowsShell 3.删除Bags项; 4.然后定位到:HKEY_CURRENT_USERSoftwareMicrosoftWindowsShell; 5.同样删除Bags项; 6.最后定位到:HKEY_CURREN

PHP对文件夹递归执行chmod命令的方法_php技巧

本文实例讲述了PHP对文件夹递归执行chmod命令的方法.分享给大家供大家参考.具体分析如下: 这里对文件夹和文件递归执行chmod命令来改变执行权限 <?php function recursiveChmod($path, $filePerm=0644, $dirPerm=0755) { // Check if the path exists if(!file_exists($path)) { return(FALSE); } // See whether this is a file if(

PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)_php实例

如果做一个在线的文件管理系统的话,那么首先必须知道怎么读取目录和文件,其实这个功能几行代码就可以实现了. 输出效果: 实现代码: 复制代码 代码如下: <?php $dir = "D:/";  //要获取的目录 echo "********** 获取目录下所有文件和文件夹 ***********<hr/>"; //先判断指定的路径是不是一个文件夹 if (is_dir($dir)){  if ($dh = opendir($dir)){   whi

fckeditor上传文件按日期存放及重命名方法_php实例

1. 实现 fckeditor 按日期分目录的形式存放上传的文件,比如今天是 2015年5月5日,那么今天上传的文件都放在这个目录里面去,明天上传的则自动创建并放在类似 2015-05-06 这样的目录里面去. (1)找到 editor\editor\filemanager\connectors\php\ 文件夹下的 config.php 文件 (2)找到如下配置变量 查看代码打印 复制代码 代码如下: $Config['UserFilesPath'] = '/uploadfiles/'; 将其

PHP设置图片文件上传大小的具体实现方法_php实例

我们简要介绍一下PHP文件上传涉及到的一些参数: •file_uploads :是否允许通过HTTP上传文件的开关,默认为ON即是开.•upload_tmp_dir :upload_tmp_dir用来说明PHP上传的文件放置的临时目录,要想上传文件,得保证服务器没有关闭临时文件和有对文件夹的写权限,如果未指定则PHP使用系统默认值.•upload_max_filesize :允许上传文件大小的最大值,默认为2M.•post_max_size :控制在采用POST方法进行一次表单提交中PHP所能够

thinkPHP导出csv文件及用表格输出excel的方法_php实例

本文实例讲述了thinkPHP导出csv文件及用表格输出excel的方法.分享给大家供大家参考,具体如下: 1.thinkphp导出csv文件 导出csv文件可能就那几行代码,今天有个问题困扰我好久,就是导出之后出现一些html代码,这个不应该,view里面是空的,controller中最后也没有$this->display(),最后细心看到think_page_trace这样的字样,恍然大悟,是页面的跟踪日志,这个默认是会输出来的.最后在方法后面加了一个exit结束就好了,下面是代码: 1.I

win7删文件夹时提示无权限 解决方法

原文:http://zhidao.baidu.com/question/242757492.html 最简单的删除方法不用提升权限. 右键 C盘-属性-磁盘清理 选择"以前的 Windows 安装"单击确定 删除即可 . 或者1. 单击「开始」按钮,在搜索框中键入"磁盘清理",然后单击"磁盘清理".(如果系统提示您选择驱动器,请选择刚刚安装了 Windows 的驱动器,然后单击"下一步".) 2. 单击"清理系统文件

android中创建文件夹。。。。。

问题描述 android中创建文件夹..... #android中不能创建文件夹,哪里都不能! 调试返回结果底下三个全是false void createFile(File onClickFile, String fileName) { File f = new File(onClickFile.getAbsolutePath(), fileName); if (!f.exists()) { try { if (f.mkdirs()) { Toast.makeText(listActivity,

win7系统桌面上禁止创建文件夹的解决方法

  用户在操作win7系统的时候,都会选择在电脑桌面上创建文件夹,其实这是一个坏习惯.为什么这么说呢?因为电脑桌面是属于win7系统系统盘的,如果不小心出现系统损坏的情况,系统盘中的文件就会最先受到损坏,进而导致桌面的文件丢失.损坏.可是有些用户还是会习惯性的在电脑桌面上创建文件夹,那么有没有什么方法可以禁止在电脑桌面上创建文件夹呢?今天小编就跟大家一起分享下关于这个问题的解决方法! 方法如下: 1.先确定win7系统的系统盘(C盘)是否为NTFS格式,如果不是,将C盘格式化,在格式化过程中更换