Я настраиваю веб-сервер для WordPress.
WordPress требует, чтобы это был материал, который будет принадлежать www пользователю, или это имеет проблемы при установке плагинов, и темы (просит сервер у учетных данных FTP, это глупо, я знаю).
Это не было бы проблемой, но я хочу дать одному пользователю SSH пустой каталог WWW, таким образом, они могли загрузить/распаковать/установить WordPress сами (руки прочь от метода).
После того, как они загружают и распаковывают архив WordPress, все файлы принадлежат тому конкретному пользователю, и у них есть проблемы руководящая установка плагинов/тем или обновления по уже упомянутым причинам.
Каков был бы самый удобный и безопасный способ достигнуть обеих целей, позволив пользователю, чтобы чувствовать себя подобно дома и иметь полностью рабочую установку WordPress?
Кажется, что setfacl мог быть достойным решением, чтобы заставить весь новый материал в соответствии с одним каталогом наследовать полномочия, которые я установил.
Кто-либо мог предложить подсказку или предложение о том, как достигнуть того, что я пытаюсь или даже вести меня в другом направлении?
Я использую Nginx с PHP-FPM.
Спасибо!
Я нашел решение. Это я идиот.
Я скопировал конфигурацию пула php-fpm с другого хоста и забыл определить права пользователя: пользователя, чтобы процесс php выполнялся от имени этого пользователя.
Изменение этого параметра и добавление пользователя nginx (www) в группу пользователей устранило проблему.
Добавить / обновить константу FS_METHOD
для "прямого "в вашем wp-config.php, и вы сможете выполнить обновление без предоставления каких-либо сведений о 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 без необходимости ввода пароля.
Это может быть брешь в безопасности, если все сделано неправильно, но если вы все сделаете правильно, в этом нет ничего страшного. Вот некоторые вещи, в которых необходимо убедиться:
chattr + i
).