我有一个名为writable.If的目录,我在其中创建了另一个目录
mkdir("test", 0777);这是否使测试目录可写?
如果我只用
mkdir("test");它是否从其父dir继承可写属性?
如果没有,是否有办法让它继承。这样我就不用单独写了?
发布于 2013-12-26 11:14:30
你们两个假设的选择都不是真的。结果权限既不是精确的777,也不是父目录的“继承”。
要理解将要发生的事情,你需要理解两点:
umask()在PHP中使用它。mkdir(),第二个参数不仅仅是“确切的权限”。umask将修改它。因此,最终结果可能(而且,最好的机会是-将是)与777不同。同样重要的是要认识到-- Windows权限系统与*nix不同--在Win系统下工作时,您不能依赖上述描述。
发布于 2013-12-26 11:08:47
不,目录或文件不继承父元素的属性。但是test将是全局可写的,因为您在0777中显式地设置了它。我们有三个八进制数字,这些数字表示,按顺序,所有者,组和世界对资源的权利。由于8是2的3次方,我们可以用每个八进制数字(自4+2+1=7)表示3种状态,这取决于设置的值(这是位掩码,即基于2的幂,便于按位操作)
1 = executable
2 = writable
4 = readable发布于 2013-12-26 11:08:27
mkdir的第二个参数是新目录的访问掩码。
mkdir( 'test', 0777 );将在当前位置(getcwd())创建目录测试,并使其可写入每个人。
访问权限不是继承的,而是为每个文件和目录分别设置的。
https://stackoverflow.com/questions/20783692
复制相似问题