将父文件夹设置为 www-data 用户后,创建文件夹的权限被拒绝

将父文件夹设置为 www-data 用户后,创建文件夹的权限被拒绝

在我的phpinfo配置中,我看到以下内容:

User/Group  www-data(33)/33

在我的目录中,/var/www/html/pluto-php/public/我看到以下内容data directory inside this path:

4 drwxrwxrwx 2 www-data www-data 4096 Sep 19 23:25 data

我还看到以下内容pluto-php directory

4 drwxr-xr-x  8 root root  4096 Sep 16 21:49 pluto-php

我将数据目录的所有者和组设置为 www-data。不知何故,在完成所有这些操作之后,我在php code运行 php 脚本时仍然收到此错误,该脚本在数据目录中创建一个目录

Warning: mkdir(): Permission denied in /var/www/html/pluto-php/vendor/pluto/src/Pluto/Stdlib/FilesystemUtils.php on line 32

我尝试过,apache2ctl restart但没有任何效果。

我已经按照谷歌搜索中的每个教程进行操作,但还是卡在这里。

更新:

这是我的进程列表

    root@yonaton-Lenovo-V570:/var/www/html# ps aux | grep apache
    root      3234  0.0  0.6 409908 37092 ?        Ss   Sep28   0:09 /usr/sbin/apache2 -k start
    www-data  8516  0.3  0.2 410888 16988 ?        S    10:41   0:00 /usr/sbin/apache2 -k start
    www-data  8517  0.0  0.1 409940 10632 ?        S    10:41   0:00 /usr/sbin/apache2 -k start
    www-data  8518  0.0  0.1 409940 10632 ?        S    10:41   0:00 /usr/sbin/apache2 -k start
    www-data  8519  0.0  0.1 409940 10632 ?        S    10:41   0:00 /usr/sbin/apache2 -k start
    www-data  8520  0.0  0.1 409940 10632 ?        S    10:41   0:00 /usr/sbin/apache2 -k start
    www-data  8521  0.0  0.1 409940 10632 ?        S    10:41   0:00 /usr/sbin/apache2 -k start
    root      8523  0.0  0.0  21292  1088 pts/1    S+   10:41   0:00 grep --color=auto apache

答案1

www-data必须具有对整个树的写访问权限。

您可以执行chown -R www-data:yourgroup /var/www/html/pluto-php,其中yourgroup是您的用户的组名(root出于安全原因请避免)。如果您不指定您的组名,您将无法在数据目录中写入和读取。

接下来通过执行添加正确的权限chmod -R 775 /var/www/html/pluto-php

答案2

权限被拒绝总是操作系统级别的问题。首先确保您认为进程正在运行的用户确实是相关用户。您似乎已经做到了这一点,但还要验证您没有运行 suexec、mpm_itk 或 mod_ruid 之类的程序,这些程序可以更改单个请求运行的 UID。

接下来,检查您尝试写入的路径是否可供用户遍历(在本例中为 www-data)。该namei命令可以在这里提供帮助:

namei -mo /var/www/html/pluto-php/public/

接下来验证某些操作系统级别的安全软件(例如 SELinux 或 Apparmor)是否正在运行,如果正在运行,确定它是否会干扰您向该目录写入的进程。

最后,永远不需要 0777 的目录权限。1777 可能,但如果您需要将权限设置为 0777 才能使其工作,则说明其他地方出了问题。

相关内容