Какое правильное решение для веб-сервера пытается записать в каталог?

Итак, у меня есть ящик с пользователем «развернуть». Этот пользователь развертывания владеет репозиторием кода, а WordPress работает в этом поле …

Когда WordPress пытается сделать что-то вроде загрузки плагина, пользователь использует «www-data» для записи в «wp-content / plugins». По-видимому, он загружает zip-файл, распаковывает, а затем удаляет zip-файл.

Я продолжал сталкиваться с проблемами, когда WordPress не смог выполнить эти действия. Поскольку весь мой репозиторий кода был установлен как владелец и группа: «deploy: deploy», очевидно, что www-data не имеет доступа к этому.

Итак, моя первая попытка состояла в том, чтобы добавить www-данные в группу развертывания.

usermod -a -G deploy www-data 

Сразу же после выдачи этой команды я обнаружил, что больше не могу ssh в коробку. Полностью смущен, почему … может кто-нибудь может меня наполнить? Поэтому я закончил:

 chmod -R go-w ~ 

И тогда снова можно было бы ssh … делая «группы www-data», показало развертывание как один из вариантов, поэтому я подумал, что ура … Я пошел и убедился, что все каталоги wp-контента и плагинов имеют доступ на запись для группы , и они сделали … Двойной страх, он должен работать отлично!

Однако нет … Ошибка при попытке загрузить плагин.

После большого досады я просто зашел в конфигурацию apache и изменил APACHE_RUN_USER & GROUP на "развернуть"

Проблема решена … Сорт. За исключением того, что apache работает как главный пользователь, я думаю, это ужасно.

В любом случае, поэтому после внесения этого изменения загрузка плагина прошла успешно, и я увидел:

 drwxr-xr-x 8 deploy deploy 4096 Oct 22 21:28 wp-crm 

Таким образом, у группы нет доступа для записи – я подумал, может быть, это намек на то, почему это было неудачно … Но тогда тот факт, что он пишет с помощью развертывания, означает, что это не совсем намек … Потому что это только из-за как установлен uumask для развертывания. Предполагаю …

Итак … Я просто потерял, что такое решение …

Должна ли моя группа wp-content быть www-данными?

Или я пропустил что-то еще здесь?

  • Как работает umask
  • Установите umask для блока systemd
  • umask XXX (бит разрешения), чтобы предоставить разрешение на выполнение файлов
  • Предопределенная umask по заданному пути
  • Базовые разрешения для привода fat32 usb
  • umask изменяется до 0002 после cd
  • выпуск разрешения файла по умолчанию для пользователя rhel 6
  • По умолчанию umask для заданий cron
  • 2 Solutions collect form web for “Какое правильное решение для веб-сервера пытается записать в каталог?”

    К сожалению, usermod -G заменяет группы пользователей. Вы хотели usermod -G -a .

    Простейшим решением для этого было бы ACL файловой системы. Я не уверен, что согласен с установкой (потому что каталог не является статичным, и он не использует какой-либо другой каталог для временных данных), но это другое дело.

    С ACL файловой системы вы можете предоставить пользователю www-data доступ к определенному каталогу, даже если обычные разрешения не позволяют его.

    Так, например,

     setfacl -R -m user:www-data:rwx wp-content/plugins setfacl -d -R -m user:www-data:rwx wp-content/plugins 

    Первый www-data файл для www-data читает + записывает + выполняет в wp-content/plugins и все в нем (рекурсивно). Вторая команда устанавливает разрешения по умолчанию, так что любые новые файлы и папки, созданные в wp-content/plugins будут иметь указанный ACL (и, таким образом, будут читать + писать + выполнять по www-data ).

    Linux и Unix - лучшая ОС в мире.