【问题标题】:Wrong permissions set on newly created directory在新创建的目录上设置了错误的权限
【发布时间】:2015-12-19 10:42:00
【问题描述】:

这是使用错误权限创建“缓存”文件夹的代码:

mkdir($saveFolder, 02775);

当我使用 ls -la 检查文件夹权限时,我收到:

drwxr-sr-x

但我期待的是:

drwxrwsr-x

【问题讨论】:

    标签: php file-permissions


    【解决方案1】:

    由于一些晦涩的原因(至少对我而言)将代码更改为

    mkdir($saveFolder);
    chmod($saveFolder, 02775);
    

    解决了这个问题。

    现在我在文件夹上设置了正确的权限:

    drwxrwsr-x
    

    【讨论】:

    • 工作就像一个魅力。谢谢
    【解决方案2】:

    您当前的 umask 也会影响模式,因此根据您的 umask 设置,创建的目录的模式可能与函数调用中指定的八进制不匹配。 http://php.net/manual/en/function.mkdir.php:

    模式默认为 0777,表示访问范围最广。有关模式的更多信息,请阅读 chmod() 页面上的详细信息。请注意,您可能希望将模式指定为八进制数,这意味着它应该有一个前导零。 模式也会被当前的umask修改,你可以使用umask()来改变

    尝试设置umask(0) 并且提供给mkdir() 的参数应该可以按预期工作。

    更多讨论在这里:https://bugs.php.net/bug.php?id=65796

    【讨论】:

    • chmod 前导零,解决了我的问题。谢谢老哥
    猜你喜欢
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 2011-02-20
    • 2010-10-09
    相关资源
    最近更新 更多