Как настроить разрешения на загрузку в Wordpress? [закрыто]

Я использую сайт wordpress на общем хостинге (CentOS). Загрузка через wordpress работает только в том случае, если я установил каталог загрузки на 777, что небезопасно.

Каталог загрузки принадлежит пользователю и группе psacln (мы используем plesk на сервере).

После того, как гуглил, все еще не могу понять, что мне делать, чтобы разрешить загрузку пользователей из wordpress без установки 777 в каталоге?

Спасибо

0
задан 26 February 2015 в 12:21
3 ответа

Каталог должен принадлежать тому же пользователю, что и запущенный процесс PHP. Если вы используете PHP под apache, этим пользователем обычно будет apache.

Вы можете проверить это, проверив пользователя httpd:

[user@host ~]$ ps aux | grep httpd

Вы получите результат, подобный этому:

[user@host ~]$ ps aux | grep nginx
root      4774  0.0  0.3  11204  3288 ?        Ss   12:20   0:00 /usr/sbin/httpd
apache    4776  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
apache    4777  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
apache    4778  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
apache    4779  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
apache    4780  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
apache    4781  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
apache    4782  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
apache    4783  0.0  0.1  11204  2076 ?        S    12:20   0:00 /usr/sbin/httpd
root      4787  0.0  0.0   5500   716 pts/1    S+   12:20   0:00 grep httpd

Я запускаю apache с PHP, скомпилированным как модуль, поэтому изменение разрешений на 'apache' решит вашу проблему и позволит вам сбросить разрешения до 755 или 700, если вы действительно заботитесь о безопасности:

[user@host ~]$ chown apache /path/to/upload/dir
[user@host ~]$ chmod 755 /path/to/upload/dir

Согласно вашему комментарию, вы можете добавить apache и psacln в одну и ту же группу, измените владельца группы и измените его таким образом

[user@host ~]$ sudo groupadd web  
[user@host ~]$ sudo usermod -G web apache  
[user@host ~]$ sudo usermod -G web psacln  
[user@host ~]$ chgrp web /path/to/upload/dir  
[user@host ~]$ chmod 070 /path/to/upload/dir   

Вы также можете использовать 575 для разрешения rwr (владелец, группа, другое)

4
ответ дан 4 December 2019 в 11:54

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

#!/bin/bash

PATH=/bin:/usr/bin
WEBROOT="/var/www/www.example.org"

UPLOADS="${WEBROOT}/wp-content/uploads"

chown -R nobody:nogroup ${WEBROOT}
find ${WEBROOT} -type d -exec chmod 0555 {} \;
find ${WEBROOT} -type f -exec chmod 0444 {} \;

chown nobody:www-data ${WEBROOT}/sitemap.xml ${WEBROOT}/sitemap.xml.gz
chmod 0464 ${WEBROOT}/sitemap.xml ${WEBROOT}/sitemap.xml.gz

chown -R nobody:www-data ${UPLOADS}
find ${UPLOADS} -type d -exec chmod 2575 {} \;
find ${UPLOADS} -type f -exec chmod 0464 {} \;

Если Я хочу обновить WordPress или любые плагины или темы, я просто запускаю

chmod -R 0777 /var/www/www.example.org

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

0
ответ дан 4 December 2019 в 11:54

Использование 777 или добавление прав apache / http / user и разрешение модификации файлов небезопасно.

Не разрешайте прямую загрузку и используйте доступ ftp или SFTP только для обновления. Таким образом, у веб-сайта есть доступ только для чтения / выполнения к файлам (если вы не сделали чертовски 777 раньше).

Для безопасного управления правами используйте плагин сканера безопасности WSD, чтобы проверить, безопасен ли ваш WP или нет.

0
ответ дан 4 December 2019 в 11:54

Теги

Похожие вопросы