首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >目录在可写目录中是否总是可写的?

目录在可写目录中是否总是可写的?
EN

Stack Overflow用户
提问于 2013-12-26 11:03:07
回答 3查看 74关注 0票数 1

我有一个名为writable.If的目录,我在其中创建了另一个目录

代码语言:javascript
运行
复制
mkdir("test", 0777);

这是否使测试目录可写?

如果我只用

代码语言:javascript
运行
复制
mkdir("test");

它是否从其父dir继承可写属性?

如果没有,是否有办法让它继承。这样我就不用单独写了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-26 11:14:30

你们两个假设的选择都不是真的。结果权限既不是精确的777,也不是父目录的“继承”。

要理解将要发生的事情,你需要理解两点:

  • 什么是umask。在*nix系统中,它是一个特殊的掩码,应用于新创建的文件系统元素(目录或文件)。实际上,目录也是一个文件,但这是没有问题的)。您可以通过umask()在PHP中使用它。
  • 对于mkdir(),第二个参数不仅仅是“确切的权限”。umask将修改它。因此,最终结果可能(而且,最好的机会是-将是)与777不同。

同样重要的是要认识到-- Windows权限系统与*nix不同--在Win系统下工作时,您不能依赖上述描述。

票数 1
EN

Stack Overflow用户

发布于 2013-12-26 11:08:47

不,目录或文件不继承父元素的属性。但是test将是全局可写的,因为您在0777中显式地设置了它。我们有三个八进制数字,这些数字表示,按顺序,所有者,组和世界对资源的权利。由于8是2的3次方,我们可以用每个八进制数字(自4+2+1=7)表示3种状态,这取决于设置的值(这是位掩码,即基于2的幂,便于按位操作)

代码语言:javascript
运行
复制
1 = executable
2 = writable
4 = readable
票数 1
EN

Stack Overflow用户

发布于 2013-12-26 11:08:27

mkdir的第二个参数是新目录的访问掩码。

代码语言:javascript
运行
复制
mkdir( 'test', 0777 );

将在当前位置(getcwd())创建目录测试,并使其可写入每个人。

访问权限不是继承的,而是为每个文件和目录分别设置的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20783692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档