【问题标题】:Unable to create a child directory where parent directory has permission 774无法创建父目录具有权限 774 的子目录
【发布时间】:2018-11-20 01:36:16
【问题描述】:

Amazon EC2、UBUNTU、APACHE 服务器

我使用以下 PHP 代码在 /gallery/ 中创建了一个目录 -

if (!file_exists("./gallery/$id")) 
    {
        mkdir("./gallery/$id", 0744, true);
        chown("./gallery/$id",get_current_user());
    }

我为/gallery/设置的权限是774。上面的代码没有在gallery里面创建任何子目录。

但是,将权限设置为 777 会创建子目录,但所有者和组更改为 'www-data www-data' - 我希望看到 'ubuntu ubuntu' 因为 get_current_user() 输出 'ubuntu'

谁能给点建议?我需要在 Gallery 中创建子目录,但我不想将 Gallery 的权限设置为 777。

谢谢。

【问题讨论】:

  • get_current_user() 返回脚本的所有者,而不是进程的所有者。默认情况下,Apache 在 Ubuntu 上使用 www-data-user 运行。尝试将/gallery-文件夹的所有者和组设置为www-data,然后重试。

标签: php file-permissions


【解决方案1】:

谁是所有者,/gallery/ 的所有者是哪个组? 文件夹的744表示它是可遍历的,可读可写所有者,774是相同的

如果您将 /gallery/ 更改为 www-data,它将使用权限 744 正如cmets中有人提到的,所有者是www-data,因为它是运行脚本的进程的所有者。

如果您希望您的目录归用户 ubuntu 所有,您必须将 ubuntu 添加到 www-data 组。在这种情况下,只有 774 可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2017-05-04
    • 2017-12-21
    • 2021-04-26
    • 2017-06-12
    • 2014-07-19
    • 2015-06-13
    相关资源
    最近更新 更多