【问题标题】:mkdir() not chmodding the directorymkdir() 不修改目录
【发布时间】:2011-08-26 15:46:29
【问题描述】:

我正在使用以下代码创建目录...

mkdir($basedir.$plan_name, 0777, 1);

它创建,但问题是 777 权限没有坚持

有什么想法吗?

我的目录结构是这样的......

/pdf/customs(归 wwwuser:user 所有) /pdf/customs/417/文件夹名称(由代码创建,修改为 755)

【问题讨论】:

  • 0777 是默认值。 mode 被 Windows 机器忽略。确保您的 umask 在 *nix 机器上正确设置。
  • @jnpcl 通常,0022umask 是“正确设置的”,最好明确地 chmod 然后搞砸它,尤其是如果你在网络服务器中。

标签: php linux mkdir


【解决方案1】:

您的umask 可能是022。如需更多信息,请阅读man 2 mkdir。制作目录后必须使用chmod,才能将权限设置为0777

编辑:正如其他人所建议的,您可以改为更改您的 umask。但是,如果出现问题,umask 将继续存在,您的网络服务器或 fastcgi 守护程序(或其他)将开始创建全局可写文件和目录。这是个坏消息。

【讨论】:

    【解决方案2】:

    你检查你的umask了吗?

    目录权限将被修改。例如,如果您的 umask 值为 002,则生成的权限将为 0775

    【讨论】:

      【解决方案3】:

      来自documentation

      请注意,您可能想要指定 八进制数的模式,其中 意味着它应该有一个前导零。 模式也被 当前的 umask,您可以更改 使用 umask()。

      你的umask是什么?

      【讨论】:

        猜你喜欢
        • 2012-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-06
        • 2021-12-16
        • 2018-07-30
        • 2011-12-18
        • 1970-01-01
        相关资源
        最近更新 更多