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

Как настроить разрешения на загрузку WordPress?

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

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

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

Спасибо

Каталог должен принадлежать тому же пользователю, что и запущенный процесс 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 (владелец, группа, другое)

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

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

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

Я использую этот простой скрипт для установки всех правильных разрешений в файловой системе, чтобы установка 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

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