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

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

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

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

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

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

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

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

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

Спасибо!

3 ответа

Решение

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

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

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

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

define('FS_METHOD', 'direct');

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

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

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

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

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

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

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

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