Пользователь в 'www-data' не может выполнить mkdir в Apache2 с помощью Composer

Моя цель - установить Magento с помощью Composer

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

Другие вопросы по тегам