Назад | Перейти на главную страницу

Удобные разрешения для веб-каталога WordPress?

Я настраиваю веб-сервер для WordPress.

WordPress требует, чтобы эти материалы принадлежали пользователю www, иначе у него возникнут проблемы с установкой плагинов и тем (запрашивает учетные данные FTP сервера, это глупо, я знаю).

Это не будет проблемой, но я хочу дать одному пользователю ssh пустой каталог WWW, чтобы они могли сами загружать / распаковывать / настраивать WordPress (метод рук).

После загрузки и распаковки архива WordPress все файлы принадлежат этому конкретному пользователю, и у них возникают проблемы с управлением установкой или обновлениями плагинов / тем по уже упомянутым причинам.

Каким будет наиболее удобный и безопасный способ достижения обеих целей, позволяющий пользователю чувствовать себя как дома и иметь полностью работающую установку WordPress?

Кажется, setfacl может быть достойным решением, чтобы все новые вещи в одном каталоге наследовали установленные мной разрешения.

Может ли кто-нибудь предложить намек или предложение о том, как достичь того, чего я пытаюсь достичь, или даже направить меня в другом направлении?

Я использую Nginx с PHP-FPM.

Спасибо!

Я нашел решение. Это я идиот.

Я скопировал конфигурацию пула php-fpm с другого хоста и забыл определить права пользователя: пользователя, поэтому процесс php запускается от имени этого пользователя.

Изменение этого и добавление пользователя nginx (www) в группу пользователей устранило проблему.

Добавить / обновить FS_METHOD в вашем wp-config.php укажите константу "direct", и вы сможете обновлять без предоставления каких-либо данных FTP.

define('FS_METHOD', 'direct');

FS_METHOD форсирует метод файловой системы. Это должно быть только «direct», «ssh2», «ftpext» или «ftpsockets». Как правило, вам следует изменять это только при возникновении проблем с обновлением. Если вы меняете его, и это не помогает, поменяйте обратно / удалите. В большинстве случаев установка ftpsockets будет работать, если автоматически выбранный метод не работает.

(Основное предпочтение) «прямой» заставляет его использовать запросы прямого ввода-вывода файлов из PHP, это чревато открытием проблем безопасности на плохо настроенных хостах. При необходимости это выбирается автоматически.

(Вторичное предпочтение) «ssh2» - это принудительное использование расширения SSH PHP, если оно установлено (3-е предпочтение), «ftpext» - принудительное использование расширения FTP PHP для доступа к FTP и, наконец.

(4-е предпочтение) ftpsockets использует класс сокетов PHP для доступа по FTP.

Источник: https://codex.wordpress.org/Editing_wp-config.php

Другой вариант - создать сценарий, который изменяет право собственности на файлы, которые они загружают в определенный каталог. Вы можете настроить файл sudoers, чтобы они могли запускать только этот скрипт от имени пользователя root без необходимости ввода пароля.

Это может быть брешь в безопасности, если все сделано неправильно, но если вы все сделаете правильно, в этом нет ничего страшного. Некоторые вещи, в которых нужно убедиться,

  1. Никто, кроме root, не может писать в скрипт или в каталог, содержащий скрипт. Я бы порекомендовал разместить его в / root и для хорошей меры установить неизменяемый атрибут (chattr +i) в теме.
  2. Убедитесь, что он очень узко запрограммирован, чтобы гарантировать, что он будет делать только то, что вы намереваетесь, и не может быть нарушен.
  3. В идеале не позволяйте никому иметь доступ для чтения, чтобы снизить вероятность обнаружения ошибки, сделанной в №2.