php - mkdir 不遵守权限参数

标签 php linux

我在 php 脚本中使用 mkdir 在目录 /file/file2/file3 中生成 file3。我使用权限 777,但文件创建后总是看起来像 dr----x--t 2 admin admin 4096 Jul 1 19:26 file3。我正在运行 Centos 5 64 位。 file2 已经是权限 drwxrwxrwx 16 root root 4096 Jul 1 19:26 file2。有人知道这是为什么吗?

mkdir("/file1/file2/file3",777);

最佳答案

您想使用 777 八进制, 而不是十进制:

mkdir ("/file1/file2/file3", 0777);

777 十进制结果是 1411 八进制,这将为您提供位掩码 1 100 001 001 这就是您获得这些的原因“奇怪”的权限。标准集(最后三段)为您提供 r----x--x,第一段将世界权限修改为 t(粘性位)。

另请记住,mkdir 受制于您的 umask 设置,可能不会为您提供您请求的权限(您的 umask 设置从您要求的权限中“删除”以授予您实际权限)。参见 here了解详细信息,包括如何避免该问题。

您最好使用 mkdir 创建目录,然后使用 chmod(不会受您的umask<影响 设置)来更改权限。

关于php - mkdir 不遵守权限参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554134/

相关文章:

javascript - HTML/JS - 创建 "double-level"的 anchor

php - INSERT ... ON DUPLICATE KEY UPDATE - 不更新特定字段?

php - 如何在laravel中建立角色和权限的hasManyThrough关系?

linux - AWK 错误 - grep 处或附近的语法错误

linux - 构建 Google Chrome NaCl 应用程序 .nexe 文件时找不到有效的库

linux - ARM Linux 上的 Flash Player 调试?

linux - Linux 中的程序数据文件夹

javascript - 如何使用 jquery 通过 ajax 单击指向 php 脚本的链接?

c++ - 在 Linux/C++ 中枚举 USB 设备

PHP MVC : Do i really need a Controller?