“www-data” 中的用户无法使用 Composer 在 Apache2 中创建 mkdir

“www-data” 中的用户无法使用 Composer 在 Apache2 中创建 mkdir

我的目标是使用 Composer 安装 Magento

composer create-project --repository=https://repo.magento.com/ magento/project-community-edition magento2

Installing magento/project-community-edition (2.2.6)

In ProjectInstaller.php line 68:

  mkdir(): Permission denied  


create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

我有一个用户

magento_user@roman-pc:/var/www/html$ groups magento_user 
magento_user : magento_user www-data

我有 apache2

DocumentRoot /var/www/html
-------------------------------------------------------------------------
magento_user@roman-pc:/var/www/html$ ps aux | grep apache
root      1003  0.0  0.3 499316 30788 ?        Ss   15:53   0:00 /usr/sbin/apache2 -k start
www-data  1066  0.0  0.2 501648 17608 ?        S    15:54   0:00 /usr/sbin/apache2 -k start
www-data  1067  0.0  0.2 501648 17608 ?        S    15:54   0:00 /usr/sbin/apache2 -k start
www-data  1068  0.0  0.2 501648 17608 ?        S    15:54   0:00 /usr/sbin/apache2 -k start
www-data  1069  0.0  0.2 501648 17608 ?        S    15:54   0:00 /usr/sbin/apache2 -k start
www-data  1070  0.0  0.2 501648 17608 ?        S    15:54   0:00 /usr/sbin/apache2 -k start
magento+  6363  0.0  0.0  14432  1004 pts/0    S+   17:07   0:00 grep --color=auto apache

不应该www-data授予我的用户完全权限吗var/www/html???

------------------------------------------------------------------

更新

搞砸了我现在的状态是

magento_user@roman-pc:/var/www/html$ ls -ld
drwxrwsr-x 3 root root 4096 ott  2 12:30 .

magento_user@roman-pc:/var/www/html$ mkdir duck
mkdir: cannot create directory ‘duck’: Permission denied

magento_user@roman-pc:/var/www/html$ mkdir duck
mkdir: cannot create directory ‘duck’: Permission denied

为什么我仍然没有rws:读、写(代表什么s?)?

答案1

成为组成员不会自动授予用户写入权限。 Linux 中的每个文件都有一组权限,允许/限制读取/写入/执行文件所有者拥有组的成员其他的

您应该检查如下文件的权限

root@sergey-mint:~# ls -l /var/run/rsyslogd.pid 
-rw-r--r-- 1 root root 3 Sep 28 14:54 /var/run/rsyslogd.pid

注意-rw-r--r--,它表明所有者具有读/写权限,拥有组的成员只有读取权限,其他所有人都只有读取权限。

在您的例子中,您的目录略有不同,但仍然是一个文件。您可以通过添加-d标志来检查目录权限,ls如下所示

ls -ld /var/www/html

能够在那里写你的magneto_user您应该确保组所有者具有读取、写入和执行权限。为此,请运行以下命令chmod g+rwx /var/www/html

相关内容