这两天在写一个缓存模块,需要把生成的缓存目录和文件设置成777权限,好让ftp用户可以直接登录删除缓存,蛋疼的事也就这么发生了,明明用了mkdir($path, 0777);用ftp用户登录却删除不了,为什么呢?
查看了一下建立的目录的权限,发现mkdir建立的目录权限都是755的,我明明用的是777,立马google了一下,才知道原来是受Linux系统的 umask限制了,Linux的umask默认值是0022,所以php 的 mkdir 函数只能建立出755权限的文件夹出来。
小Tips:查看Linux的umask值直接在终端输入命令umask就可以看到
解决方法:
$oldmask = umask(0); mkdir("test", 0777); umask($oldmask);
相关推荐
LINUX UMASK 详解 umask 是 Linux 操作系统中的一个重要概念,它用于控制文件和目录的默认权限。了解 umask 的作用和使用方法是 Linux 系统管理员必备的知识。 一、umask 的概念和作用 umask 是一个权限掩码,它...
其中参数pathname是新创建目录的目录名,mode指定该目录的访问权限,这些位将受到文件创建方式屏蔽(umask)的修正。 该函数创建一个名为pathname的空目录,此目录自动含有“.”和“..”2个登记项。这个新创建目录的...
Linux umask命令 Linux umask命令指定在建立文件时预设的权限掩码。 umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。 语法umask...
Linux中的`mkdir`命令是操作系统中的基本工具,用于在文件系统中创建新的目录。这个命令在Linux、Unix以及Ubuntu等类Unix系统中广泛使用。在使用`mkdir`时,用户需要确保他们拥有在当前目录中创建新目录的权限,同时...
这是因为Linux系统默认的umask通常是0022,这导致了实际创建的目录权限被限制在0755(即`0777 & ~0022 = 0755`)。 umask的默认值0022意味着新创建的文件和目录默认权限将不包括其他用户(组外成员)的写入权限。在...
Linux 中 mkdir 创建目录命令使用说明 Linux 操作系统中,mkdir 命令是一种基本的文件管理命令,用于创建新的目录结构。mkdir 命令的基本格式为:mkdir [选项] 目录...,其中选项部分是可选的,目录部分是必需的。 ...
深入浅出 Linux 系统 umask 值及其对应的文件权限讲解 Linux 系统中,umask 值是一个非常重要的概念,它能够控制文件和目录的权限。但是,很多人对 umask 值的计算方法和权限的关系不甚了解。在这篇文章中,我们将...
例如,如果`umask`是022(通常是默认值),那么`mkdir(0777)`的实际权限将是`0777 & 022 = 022`。 `umask`的工作原理是这样的:它设置了用户创建新文件或目录时被“移除”的权限位。例如,`umask 022`意味着创建的...
一、如何设置 umask 值通过 umask 命令可以设定文件创建时的缺省模式,对于每一类用户(文件属主、同组用户、其他用户)都存在一个相应的 umask 值中
mkdir 命令用于创建指定名称的目录,要求用户具有要创建的目录下的读写权限。 一、命令格式 mkdir [option] Dir… 二、命令参数 -m, –mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask -p, ...
最近开始学习linux ,看完马哥的linux课程关于umask的这个部分, 写这篇博客希望加深下我对umask的理解 和对umask不太清楚的博友一些帮助。 1 umask 是什么 当我们登录系统之后创建一个文件是会有一个默认权限的,...
Suse Linux 下限制用户使用 FTP 访问其他目录 在 Suse Linux 系统中,限制用户使用 FTP 访问其他目录是一个常见的需求。本文将详细介绍如何限制用户使用 FTP 访问其他目录,确保用户只能访问自己的主目录。 首先,...
在描述中提到的问题是,当使用`mkdir()`函数尝试创建一个权限为0777的目录时,实际上创建的目录权限却是0755,这是因为`umask`的默认设置限制了新目录的最大权限。例如: ```php mkdir('./aa/', 0777); ``` 在这种...