Когда люди говорят о WordPress безопасности, файл разрешений и собственности, как правило, последнее, что на их умы. Установка плагинов безопасности является хорошей практикой и обязательным для каждого сайта WordPress. Однако, если разрешения файловой системы настроены неправильно, большинство мер безопасности могут быть легко обойдены злоумышленниками.
Разрешения и право собственности являются весьма важными в WordPress установок. Настройка этих должным образом на вашем веб-сервере должно быть первое, что вы делаете после установки WordPress. Наличие неправильного набора разрешений может привести к фатальным ошибкам, которые останавливают ваш сайт мертвым. Неправильные разрешения могут также скомпрометировать ваш веб-сайт и сделать его склонным к атакам.
Дальнейшее чтение на SmashingMag:
- Что делать, когда ваш сайт выходит из-под захода на нет
- Как организовать рабочий процесс кодирования
- Как узнать, почему ваш сайт перестал работать
- 9 шагов к счастливым отношениям с вашим хостинг-провайдером
Помимо проблем безопасности, ряд других проблем может вытекать из неправильного набора разрешений и собственности. Вы когда-нибудь сталкивались с пустым белым экраном при попытке загрузить ваш сайт в первый раз? Или вы когда-либо получали сообщения об ошибках при попытке загрузить изображения в загрузчик мультимедиа? Исправление разрешений и право собственности на файлы и папки часто исправляет эти типы проблем.
В этой статье мы научим вас всем о разрешениях и собственности Filesystem WordPress: что это такое, почему они важны и как их настроить. Вы узнаете несколько основных принципов, которые я следую, чтобы сохранить мою файловую систему нетронутыми. Мы также рассмотрим две наиболее распространенные конфигурации серверов WordPress. Мы объясним, как они отличаются и, что более важно, как установить надлежащие разрешения и право собственности для каждого из них.
Терминал Vs. Клиент FTP
В ходе этой статьи мы будем использовать терминал для изменения разрешений и собственности. Почему бы не использовать вместо этого клиент FTP? Причина в том, что FTP немного ограничена для наших нужд. FTP может использоваться для передачи файлов и изменения разрешений файлов и папок, но он не может использоваться для изменения настроек собственности.
Для выполнения команд, перечисленных в этой статье, необходимо войти в свой сервер с помощью SSH
команды. Если вы не знакомы с терминалом SSH
и, вы можете узнать о них в статье«Введениев Linux команды».
Пользователи и группы
Прежде всего, мы должны быстро говорить о том, что пользователи и группы, потому что они идут рука об руку при определении разрешений.
Проще говоря, пользователь — это учетная запись, которая имеет доступ к компьютеру, а группа — это просто идентификатор для определенного набора пользователей. Это означает, что каждый раз, когда вы передаете файлы с помощью FTP, вы используете учетную запись пользователя на вашем сервере. И в зависимости от того, как ваш хост настроил учетную запись, вы (пользователь) может принадлежать к одной или нескольких группам. Пользователи и группы, как пользователи и роли в WordPress. Оба концептуально одинаковы, за исключением того, что первый используется на вашем сервере.
Пользователи и группы важны, поскольку они помогают определить привилегии для всех наших файлов и папок. Владельцы файла обычно будут иметь полные привилегии на нем; другие пользователи, принадлежащие к той же группе, будут иметь меньше привилегий; в то время как все остальные могут не иметь никаких привилегий на нем. Эти привилегии являются тем, что мы называем разрешениями.
Что такое разрешение на файлы?
Разрешения диктуют, что пользователи могут делать с файлом. Разрешение представлено набором чисел, например 644
777
или, именуемым режимом разрешения. Если вы использовали плагины в WordPress раньше, то вы, скорее всего, попросили некоторые из них изменить разрешения файла или каталога, потому что плагин не может написать на него. Изменяя разрешения файла, вы позволяете веб-серверу получить доступ к этому файлу или папке.
Думайте о режиме разрешения как наборе инструкций «кто может делать что», в котором каждая цифра соответствует «кто» части оператора:
- Первая цифра. Что может сделать пользователь учетной записи, которой принадлежит файл
- Вторая цифра. Что могут сделать другие учетные записи пользователей в группе владельца
- Третья цифра. Что могут делать учетные записи пользователей всех остальных (включая посетителей веб-сайта)
Далее, число соответствует «что» часть заявления и сумма комбинации любых этих цифр:
-
4
Прочитайте файл или прочитайте имена файлов в папке -
2
Написать или изменить файл или изменить содержимое папки -
1
Выполнить или запустить файл или получить доступ к файлам в папке
Эти цифры являются привилегиями, которые присваиваются «кто» в режиме разрешения. Примечание в списке выше, что привилегии означают что-то другое для файлов и папок.
Использование правильного режима разрешения является весьма важным. Чтобы лучше проиллюстрировать это, подумайте еще раз пользователей и ролей в WordPress. На веб-сайте WordPress участники и администраторы имеют различные наборы возможностей. Авторы могут создавать новые сообщения в блоге, но они не могут добавлять плагины. Администраторы, с другой стороны, могут добавлять плагины, а также создавать сообщения в блоге. Администраторы могут даже изменить внешний вид веб-сайта, если они этого хотят. Четкая строка отделяет то, что пользователи в разных ролях могут сделать. Это то же самое с режимами разрешения, за исключением того, что вместо того, чтобы иметь дело с блогами и темами, мы имеем дело с файлами и папками на сервере.
Изменение режимов разрешения
Клиенты FTP обычно предоставляют интерфейс, в котором можно удобно изменить режим разрешения файлов и папок. Вот скриншот интерфейса в моем клиенте FTP:
Пример интерфейса режима разрешения.
Если у вас есть доступ к терминалу сервера, вы также можете использовать chmod
команду для изменения режима разрешения файла или папки:
sudo chmod 644 <file>
Чтобы изменить режимы разрешения всех файлов или папок, используйте chmod
в тандеме с find
командой. Например, вы можете использовать это для изменения всех файлов 644
на:
sudo find . -type f -exec chmod 644 {} +
Или используйте это, чтобы изменить все папки 755
на:
sudo find . -type d -exec chmod 755 {} +
Обратитесь к«Изменение разрешений на файлы в WordPress Codex»для руководства по изменению режимов разрешения.
Разница между 644 и 777
Давайте посмотрим на некоторые режимы разрешения и как они влияют на наш сайт.
Что бы phP сценарий с разрешением режим 644
означает? Следуя вышеизложенному о том, как работают режимы разрешения, мы можем расшифровать, что этот режим позволяет пользователям делать с нашим скриптом:
- Привилегии владельца: «читать» (4) и «написать» (2)
6
- Групповые привилегии владельца являются «прочитаны» (4)
4
- Привилегии всех остальных являются «читать» (4)
4
Простым языком это означает, что:
- если мы владеем сценарием, мы можем прочитать и изменить его;
- все остальные могут только читать его.
Как мы видим, 644
это хороший режим разрешения для нашего сценария PHP. Мы можем внести в него изменения, и наш веб-сервер может прочитать его.
Теперь давайте посмотрим на папки. Что делать, если мы владели папку, которая имела режим 777
разрешения? Этот режим разрешения может быть разбит следующим образом:
- Привилегии владельца: «читать» (4) и «написать» (2) и «выполнить» (1)
7
- Групповые привилегии владельца: «читать» (4) и «написать» (2) и «выполнить» (1)
7
- Привилегии всех остальных являются «читать» (4) и «написать» (2) и «выполнить» (1)
7
Это означает, что
- любое может получить список имен архивов в нашей скоросшивании;
- любой может создать, изменить и удалить любой файл в нашей папке;
- любой может получить доступ к файлам в нашей папке.
Очевидно, что 777
это плохой режим разрешения для чего-либо на нашем сайте WordPress, потому что любой посетитель сможет добавить файлы в наш каталог или даже удалить сценарии. Хуже того, любой сможет поставить в вредоносный код и скомпрометировать наш сайт.
Конфигурации серверов WordPress
Теперь мы знаем о разрешениях и о том, как их читать. Но прежде чем приступить к изменению всех наших разрешений, мы должны понять, как настроен наш сервер. Поскольку разрешения касаются учетных записей пользователей и групп, мы должны знать, как работает наш веб-сайт WordPress.
Много различных конфигураций сервера там. Различные конфигурации нуждаются в различных наборах режимов разрешения для Того, чтобы WordPress работал правильно и надежно. Мы поговорим только о двух наиболее распространенных конфигурациях и надлежащих разрешениях для них:
-
Стандартная конфигурация сервера:
- У вас есть учетная запись пользователя.
- Веб-сервер работает как другая учетная запись пользователя.
-
Общая конфигурация сервера или
suEXEC
конфигурация:- У вас есть учетная запись пользователя.
- Другие пользователи, пользующиеся сервером, имеют учетные записи пользователей и могут делиться одной и той же группой с вашей учетной записью пользователя.
- Ваш веб-сервер работает как владелец файлов WordPress.
Основное различие между этими двумя заключается в том, как работает веб-сервер.
Разрешения для стандартной конфигурации сервера WordPress
Стандартные конфигурации WordPress требуют немного больше работы, чем общие конфигурации сервера, потому что веб-сервер не имеет никакого отношения к нашей учетной записи пользователя.
Файл и Фолдер собственности для WordPress
Во-первых, мы должны настроить файл и папку собственности наших файлов WordPress. Мы должны убедиться в следующем:
- что ваша учетная запись пользователя является владельцем всех файлов и папок WordPress,
- что ваша учетная запись пользователя и учетная запись пользователя веб-сервера принадлежат к одной и той же группе.
Чтобы узнать группы, к которым принадлежит ваша учетная запись пользователя, вы можете использовать эту команду в терминале вашего сервера:
groups
Затем, чтобы узнать группы, к которым принадлежит ваш веб-сервер, вы можете временно вставить этот фрагмент PHP в один из скриптов WordPress:
echo exec( 'groups' );
Если пользователь и веб-сервер не принадлежат к одной группе, можно использовать следующую команду в терминале для добавления пользователя в одну из групп веб-сервера:
sudo usermod -a -G <a-common-group-name> myuser
Наконец, чтобы убедиться, что все в нашей папке WordPress принадлежит нашей учетной записи пользователя и имеет общую группу, которую мы только что добавили, выполнить эту команду в папке WordPress:
sudo find . -exec chown myuser:a-common-group-name {} +
Разрешения на WordPress
Все наши файлы и папки должны теперь иметь правильное право собственности. Теперь пришло время настроить режимы разрешения. Чтобы упростить ситуацию, нужно помнить только следующее:
- Все файлы должны быть
664
. - Все папки должны быть
775
. -
wp-config.php
должно быть660
.
Вот чего мы пытаемся достичь с помощью этого набора режимов разрешения:
- Наша учетная запись пользователя может читать и изменять наши файлы.
- WordPress (через наш веб-сервер) может читать и изменять наши сценарии.
- WordPress может создавать, изменять или удалять файлы и папки.
- Другие пользователи могут не видеть учетные данные нашей базы данных в
wp-config.php
.
Вы можете думать, что разрешение WordPress полные привилегии с нашими папками не является безопасным. Не волнуйтесь — мы делаем это, потому что WordPress нужны определенные функции для создания и изменения файлов. WordPress позволяет нам загружать и удалять темы и плагины и даже отодвигать скрипты и стили из административного задней части. Без такого типа разрешения, мы должны были бы вручную загружать темы и плагины каждый раз с помощью FTP.
Вы можете использовать ваш клиент FTP для изменения режимов разрешения, или вы можете использовать следующие команды в каталоге WordPress, чтобы быстро настроить разрешения всех ваших файлов и папок:
sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chmod 660 wp-config.php
Обратите внимание, что некоторые веб-серверы строже, чем другие. Если ваш строгий, то установка вашего wp-config.php
может остановить ваш сайт от 660
работы. В этом случае, просто оставить его как 664
.
Разрешения для конфигурации или конфигурации общего сервера SuEXEC
Разрешения для общих конфигураций серверов проще реализовать. Мы не будем останавливаться на собственности, потому что веб-сервер работает как владелец наших файлов и папок. Поскольку наша учетная запись пользователя и веб-сервер имеют одни и те же разрешения (оба являются владельцами), мы можем погрузиться прямо в изменение режимов разрешения:
- Все файлы должны быть
644
. - Все папки должны быть
755
. -
wp-config.php
должно быть600
.
Как и в предыдущем наборе режимов разрешения, они разбиваются следующим образом:
- Наша учетная запись пользователя может читать и изменять наши файлы.
- WordPress (через наш веб-сервер и как владелец учетной записи) может читать и изменять наши сценарии.
- WordPress может создавать, изменять или удалять файлы или папки.
- Другие пользователи могут не видеть учетные данные нашей базы данных в
wp-config.php
.
Опять же, вы можете использовать клиент FTP для изменения режимов разрешения, или вы можете использовать следующие команды в каталоге WordPress, чтобы быстро настроить разрешения всех ваших файлов и папок:
sudo find . -type f -exec chmod 644 {} +
sudo find . -type d -exec chmod 755 {} +
sudo chmod 600 wp-config.php
Как и в стандартной конфигурации сервера WordPress, ваш сервер может быть строже, чем другие, и не может wp-config.php
позволить 600
быть. В этом случае, вы можете настроить его на более 640
мягким; если это все еще не работает, а затем использовать 644
.
Всегда следуйте этим руководящим принципам и ваши wordPress файлы должны быть защищены от злоумышленников.
Общие подводные камни
Распространенная ошибка людей сделать, чтобы установить uploads
папку 777
. Некоторые делают это, потому что они получают ошибку при попытке загрузить изображение на свой сайт, и 777
быстро исправляет эту проблему. Но никогда не дайте неограниченный доступ для всех,иначе вы сделаете веб-сервер уязвимым для атак. Если вы будете следовать рекомендациям, охватываемым в этой статье, то у вас не должно быть проблем с загрузкой файлов на ваш сайт.
Иногда, однако, плагин будет просить, чтобы вы установите 777
файл. В этих случаях, вы можете временно установить 777
его, но не забудьте установить его обратно в исходный режим разрешения, когда вы закончите.
Заключение
Мы узнали теперь о надлежащих разрешений и файл собственности на веб-сайте WordPress. Мы также научились избегать режима разрешения 777
из-за того, как он ставит под угрозу веб-сервер.
Надеюсь, вы можете реализовать эти советы, чтобы сохранить ваш сайт WordPress безопасной и безопасной. Если у вас есть какие-либо дополнительные советы относительно разрешений и безопасности, пожалуйста, поделитесь ими в комментариях ниже.
Выдержка изображение кредита: Кристофер Росс
Источник: smashingmagazine.com