Права доступа, устанавливающиеся на файлы и папки, принадлежащие системе управления контентом WordPress, имеют очень серьезное влияние на безопасность сайта.
Если раздать неправильные права, то можно ожидать разнообразные ошибки в функционировании сайта, будь то белый экран смерти вместо страницы, или невозможность загрузить изображения в папку для мультимедиа. Более того, неправильно выставленные права доступа могут разрушить всю систему безопасности сайта, сделав его чрезвычайно уязвимым перед атаками хакеров.
Почти все важные компоненты, входящие в состав вашего сайта, такие как темы, плагины и т.д., содержат именно три эти папки. При этом, они имеют собственные права доступа, позволяющие администратору решить, «кому» и «что» можно делать в них. Под «кому» здесь подразумевается пользователь, у которого будут следующие ассоциации с ресурсами:
- Пользователи веб-сервера и их группы
- Разрешения на действия с файлами WordPress
- Изменение разрешений на действия в каталогах WordPress
- Рекомендуемые разрешения в WordPress
- Определите пользователя вашего веб-сервера
- Установите права доступа к каталогу
- Установите права доступа к файлам
- Установите разрешения на запись для определенных каталогов и файлов
- Заключение
- Терминал против FTP-клиента
- Пользователи и группы
- Что представляют собой права доступа к файлам?
- Изменение режимов доступа
- Разница между 644 и 777
- Конфигурации сервера WordPress
- Права доступа для стандартной конфигурации сервера WordPress
- Права доступа для SuEXEC конфигурации
- Распространенные ошибки
Пользователи веб-сервера и их группы
До того, как продолжить разбирать разрешения доступа в WordPress, желательно разобраться, кто же подразумевается под пользователем веб-сервера, поскольку все крутится именно вокруг него. Если вкратце, то это обычный аккаунт, имеющий права на выполнение каких-то действий на веб-сервере. Взять, к примеру, протокол передачи файлов FTP. Как только у вас появится необходимость загрузить какое-либо изображение через FPT, вы будете пользоваться соответствующим аккаунтом.
Но FTP аккаунт необходим только тогда, когда нужно закачать что-то прямо на сервер, а если нужно зайти, например, в админ панель? В таком случае, в работу вступает аккаунт веб-пользователя, позволяющий управлять сайтом на ВордПресс, устанавливая плагины и темы, загружая изображения через менеджер мультимедиа и т.д. Именно от его имени и создаются новые файлы, когда вы выполняете делаете эти вещи в своей панели администратора.
Любой отдельно взятый пользователь, может так же состоять в какой-то группе, имеющей свои собственные привилегии. Поскольку они распространяются на всех, кто входит в группу, то это лучший способ для назначения привилегий конкретному ресурсу и разделения их между всеми участниками.
Некоторые веб-хостинги, в основном работающие на основе Cpanel, не проводят различия между аккаунтами. Тем не менее, есть и такие хосты, на которых эти типы пользователей различны, правда принадлежат к одной группе. Благодаря существованию разных типов пользователей, вы имеете возможность настроить правильный контроль доступа для вашего сайта.
Разрешения на действия с файлами WordPress
Любой ресурс в ВордПресс связан с определенным набором заданных значений, диктующих то, что пользователь может сделать с ним. Есть три действия, которые мы можем выполнить с конкретным ресурсом – читать, писать (или изменять) и исполнять.
Для каждого ресурса есть возможность указать, какие из этих действий может выполнить владелец, группа и другие. Таким образом, нам нужно три бита (по одному на каждое действие) для каждой ассоциации, что в общей сложности равняется 9 бит. Поэтому, разрешение становится трехзначным числом, например, 664, в котором:
При этом, каждое значение указанных цифр определяет все возможности, которые имеет данный тип пользователей. В случае с 664, 6 – это только чтение и запись, а 4 – только чтение.
На каталоги, как и на сами файлы, тоже могут действовать определенные права доступа. Они очень похожи, но все таки имеют некоторые отличия, такие как:
Выставлять правильные ограничения жизненно важно, поскольку речь идет о безопасности, а не только о функциональности ВордПресс. Взять, например, config.php, ему желательно выставлять жесткое ограничение 600 (только для чтения). Предположим, что его права изменяться на 666, тогда любой человек сможет увидеть и изменить конфигурацию вашего сайта, а значит сможет легко сломать его или сделать уязвимым перед внешними угрозами.
Изменение разрешений на действия в каталогах WordPress
Cpanel вашего хостинга обеспечивает интерфейс, в котором есть возможность устанавливать любой уровень доступа для хранящихся ресурсов. Чаще всего, это можно сделать простым выбором конкретного файла и нажатием «Изменить разрешения». Если вы имеете дело с терминалом, то проще будет применять специальную команду chmod. Она выглядит так: chmod 644
Рекомендуемые разрешения в WordPress
Теперь, когда основные понятия мы уже разобрали, можно приступить непосредственно к установке разрешений на ресурсы WordPress. Они могут быть разными, в зависимости от желаемого уровня безопасности и удобства использования. Некоторые делают их более жесткими, а другие слишком мягкими. В этом деле, самое важное достичь наибольшей безопасности, не создавая препятствий для нормального функционирования ВордПресс. Вообще, рекомендуется делать следующее:
- Поставить на все файлы 664;
- На все папки 775;
- wp-config.php должен быть только 600.
Имейте ввиду, что вопреки стандартной конфигурации ВордПресс, какой-то конкретный сервер может быть строже, чем остальные, и не позволит выставить 600 на wp-config.php. Но вы можете указать ему более мягкое 640, а если это не сработает, то даже 644.
Вообще, безопасней всего поставить на все «только для чтения». Таким образом, хакерам будет очень трудно загружать вредоносные скрипты на ваш сайт или модифицировать существующие. Это позволит значительно сократить масштабы для любых атак. Однако, если поставить на абсолютно все «только для чтения», то возможны некоторые проблемы в юзабилити.
Например, у вас больше не будет возможности закачивать медиафайлы, а также устанавливать новые плагины и темы. Кроме того, при некоторых обстоятельствах, такие строгие разрешения могут привести к странным ошибкам во время обновления плагинов или ядра ВордПресс. Следовательно, рекомендованные значения по умолчанию будут лучше всего работать для решения большинства задач.
И так, мы рассмотрели, какую важную роль играют разрешения для доступа к ресурсам WordPress. Если они заданы правильно, то это может значительно усилить меры безопасности вашего сайта, иначе можно получить множество проблем, включая очень серьезные, как с безопасностью, так и с общей работоспособностью ВордПресс. Имейте ввиду, что вы можете также поставить ограничения на ресурсы ВордПресс через Htaccess, но это уже будет несколько сложнее.
У всех папок и файлов, расположенных на сервере имеются права доступа.
Что такое права доступа?
Права доступа – это свойства (атрибуты) файла или папки, которые позволяют серверу понять: кто, что и как может делать с соответствующим файлом или папкой.
Определены следующие действия для файлов и папок :
– запись (внесение изменений в файл или папку),
– выполнение (исполнение).
Кроме того, все пользователи разделяются на группы:
– Владелец (права владельца),
– Публичные права.
Как установить или изменить права доступа?
Самый простой способ изменить атрибуты файлов и папок – использовать любой FTP-клиент.
Предлагаю использовать – FilleZilla (описание программы можно найти в статье: “Как загрузить файлы на FTP“).
Права доступа к файлу
Как правильно уставить права доступа к файлам WordPress?
По официальной информации (https://codex.wordpress.org/Changing_File_Permissions) права доступа должны быть следующими:
– права на папки должны быть 755 или 750
– права на файлы должны быть 644 или 640
исключением является файл wp-config.php, права доступа у которого должны быть 440 или 400, для того чтобы предотвратить доступ к нему (чтение) других пользователей.
FTP-клиент FilleZilla позволяет раздельно изменять права доступа для файлов и папок :
Мне кажется вручную проверить и настроить права доступа не сложно, но возможно кому-то будет удобнее использовать для этих целей плагин для WordPress:
Плагин File Permissions & Size Checker.
После установки плагина зайдите в “Параметры” – “File Checker” и нажмите “Run File Check”. Плагин проверит все файлы блога и наглядно покажет: у каких файлов/папок какие права установлены. Особое внимание будет уделено файлам, у которых права будут уставлены как – 777 (полный доступ).
WordPress — популярная система управления контентом, которая поддерживает миллионы веб-сайтов по всему миру. При управлении сайтом на WordPress важно, чтобы для каталогов и файлов в его структуре каталогов были установлены соответствующие права доступа.
Правильная настройка прав доступа гарантирует, что ваш сайт безопасен и функционирует должным образом. В этой статье мы познакомим вас с процессом настройки прав доступа к папкам и файлам в каталоге WordPress с помощью интерфейса командной строки.
Определите пользователя вашего веб-сервера
Первым шагом в настройке прав доступа к вашему каталогу WordPress является определение пользователя, от имени которого запущен ваш веб-сервер. Это может варьироваться в зависимости от используемого вами веб-сервера и операционной системы, которую вы используете. Например, если вы запускаете Apache на сервере Linux, пользователем веб-сервера обычно является www-data. Если вы используете Nginx, пользователем веб-сервера обычно является nginx. Чтобы определить пользователя вашего веб-сервера, вы можете выполнить следующую команду в своем терминале:
Следующим шагом будет присвоение права доступа для каталога WordPress и все его содержимое пользователю веб-сервера. Это гарантирует, что пользователь веб-сервера имеет разрешение на доступ к файлам в каталоге и их изменение. Чтобы установить владельца, вы можете использовать команду chown, за которой следует флаг -R, чтобы применить ее рекурсивно.
Замените «/path/to/your/wordpress/directory» на фактический путь к вашему каталогу WordPress.
Установите права доступа к каталогу
Следующим шагом будет установка разрешений для каталогов в вашем каталоге WordPress. Каталоги обычно должны иметь разрешения, установленные на 755, что позволяет пользователю веб-сервера получать доступ к каталогам и выполнять их. Чтобы установить права доступа к каталогу, вы можете использовать команду find, за которой следует флаг -type d, чтобы найти все каталоги в вашем каталоге WordPress, а затем флаг -exec для выполнения команды chmod:
Эта команда установит права доступа к каталогу равными 755 для всех папок в вашем каталоге WordPress.
Установите права доступа к файлам
Последним шагом является установка разрешений для файлов в вашем каталоге WordPress. Обычно для файлов должны быть установлены разрешения 644, что позволяет пользователю веб-сервера читать файлы.
Чтобы установить права доступа к файлам, вы можете использовать команду find, за которой следует флаг -type f, чтобы найти все файлы в вашем каталоге WordPress, а затем флаг -exec для выполнения команды chmod.
Эта команда установит права доступа к файлам равными 644 для всех файлов в вашем каталоге WordPress.
Установите разрешения на запись для определенных каталогов и файлов
В некоторых случаях вам может потребоваться установить разрешения на запись для определенных каталогов и файлов в вашем каталоге WordPress. Например, вам может потребоваться установить разрешения на запись для каталога wp-content/uploads, чтобы загружать медиафайлы. Чтобы установить разрешения на запись, вы можете использовать команду chmod, за которой следует соответствующие разрешения.
Эта команда установит права доступа к каталогу для wp-content/uploads равными 775, что позволяет пользователю веб-сервера читать, записывать и выполнять каталог.
Аналогичным образом, вам может потребоваться установить разрешения на запись для wp-config.php файл для внесения изменений в ваш конфигурационный файл WordPress. Чтобы установить разрешения на запись для этого файла, вы можете использовать следующую команду.
Эта команда установит права доступа к файлам для wp-config.php до 664, что позволяет пользователю веб-сервера читать и записывать файл.
Заключение
Правильная настройка прав доступа к вашему каталогу WordPress является важным аспектом поддержания безопасного и функционирующего веб-сайта. Следуя шагам, описанным в этой статье, вы можете убедиться, что в вашем каталоге WordPress установлены соответствующие права доступа к его каталогам и файлам. Помните, что всегда следует проявлять осторожность при внесении изменений в файловую систему вашего веб-сайта и регулярно проверять наличие любых возможных уязвимостей в системе безопасности.
Когда люди говорят о безопасности WordPress, права доступа к файлам и владение файлами обычно являются самой последней вещью, о которой они думают. Установка плагинов безопасности является хорошей практикой, важной для каждого WordPress-сайта. Однако если ваши права доступа к файловой системе настроены некорректно, то большая часть ваших мер безопасности может быть легко обойдена злоумышленниками.
Права доступа и владения очень важны в сборках WordPress. Корректная их настройка на вашем веб-сервере должна быть первым шагом, который вы сделаете после установки WordPress. Наличие неправильного набора прав доступа может вызвать фатальные ошибки, которые приведут к «смерти» вашего сайта. Некорректные права доступа также могут поставить под угрозу ваш сайт, сделать его открытым для атак.
Помимо проблем безопасности, наличие неправильного набора прав доступа может привести и к другим проблемам. Сталкивались ли вы когда-либо с белым экраном при первой попытке загрузить веб-сайт? Получали ли вы когда-либо сообщения об ошибке при попытке загрузить изображения в медиа-загрузчике? Корректировка прав доступа и владения файлами и папками зачастую устраняет все эти проблемы.
В данной статье мы расскажем вам все о правах доступа для файловой системы WordPress: что они собой представляют, почему они важны, а также как их задать. Также мы рассмотрим несколько основных принципов, которым я следую, чтобы поддержать мою файловую систему в целости и сохранности. Помимо этого, мы раскроем две самых популярных конфигурации сервера WordPress. Мы объясним, чем они отличаются, и, что более важно, как задать соответствующие права доступа для каждой из них.
Терминал против FTP-клиента
На протяжении этой статьи мы будем использовать терминал, чтобы менять права доступа и владения. Почему бы не использовать вместо него FTP-клиент? Причина состоит в том, что FTP несколько ограничен для наших потребностей. F TP может использоваться в том случае, чтобы передавать файлы, а также менять права доступа к файлам и папкам, но он не может менять параметры владения.
Пользователи и группы
Перед тем, как начать, мы должны кратко рассказать о том, что представляют собой группы и пользователи, поскольку они идут рука об руку с определением прав доступа.
Чтобы лишний раз не усложнять, пользователь – это аккаунт, у которого есть доступ к компьютеру, а группа – это идентификатор для определенного списка пользователей. Это означает, что всякий раз, когда вы передаете файлы через FTP, вы используете аккаунт пользователя на своем сервере. В зависимости от того, как именно ваш хост настроил ваш аккаунт, вы (пользователь) можете принадлежать к одной или нескольким группам. Пользователи и группы аналогичны пользователям и ролям в WordPress. По своей задумке они практически те же самые, за исключением того, что первые используются на вашем сервере.
Пользователи и группы важны, поскольку они позволяют установить привилегии для всех ваших файлов и папок. Владельцы файла обычно имеют все полномочия по управлению этим файлом; другие пользователи, которые принадлежат к одной и той же группе, могут иметь меньше полномочий по управлению этим файлом; в то время как все остальные пользователи вообще могут не иметь полномочий. Эти привилегии (полномочия) обычно называются правами доступа.
Что представляют собой права доступа к файлам?
Права доступа определяют, что именно пользователи могут сделать с файлом. Права доступа представляются в виде последовательности цифр, как, к примеру, 644 или 777, которая называется режим доступа. Если вы использовали ранее плагины в WordPress, то некоторые из них, скорее всего, просили вас изменить права доступа к файлам или папкам, поскольку плагин не может вести запись. Изменив права доступа к файлам, вы позволите веб-серверу получать доступ к этим файлам или папкам.
Режим доступа – это набор операторов «кто может делать что», в котором каждая цифра соответствует оператору «кто»:
Затем идет число, которое соответствует оператору «что», представляющее собой сумму любой комбинации следующих цифр:
Эти цифры называются привилегиями, которые связываются с определенными пользователями в режиме доступа. Обратите внимание, что привилегии различаются для файлов и папок.
Использование корректного режима доступа очень важно. Чтобы лучше проиллюстрировать это, давайте представим себе роли пользователей в WordPress. На сайте WordPress у участников и администраторов имеется разный набор возможностей. Участники могут создавать новые записи блога, однако они не могут добавлять плагины. Администраторы, с другой стороны, могут добавлять плагины и создавать записи в блоге. Администраторы могут даже изменить вид сайта, если они хотят. Цепочка полномочий разделяет то, что могут делать пользователи в разных ролях. То же самое применимо и к режимам доступа, за исключением того, что мы работаем не с записями блога и опциями темы, а с файлами и папками нашего сервера.
Изменение режимов доступа
FTP-клиенты обычно предлагают интерфейс, через который вы можете легко менять режим доступа для ваших файлов и папок. Вот скриншот интерфейса в моем FTP-клиенте:
Если у вас есть доступ к терминалу вашего сервера, вы можете также использовать команду chmod, чтобы изменить режим доступа к файлам или папкам:
Чтобы изменить режим доступа для всех файлов или папок, используйте chmod в тандеме с командой find. К примеру, вы можете использовать ее для изменения прав доступа ко всем файлам на 644:
Или использовать ее для изменения прав доступа ко всем вашим папкам на 755:
Обратитесь к «Изменение прав доступа к файлам в WordPress», чтобы получить руководство по изменению режимов доступа.
Разница между 644 и 777
Давайте посмотрим на некоторые режимы доступа, а также как именно они влияют на наш сайт.
Что будет означать PHP-скрипт с режимом доступа 644? После разъяснения выше, как работают режимы доступа, мы можем дешифровать то, что именно позволяет делать этот режим с нашим скриптом:
- Привилегии владельца равны «считать»+ «записать»= 6
- Привилегии группы владельцев равны «считать»= 4
- Привилегии всех остальных пользователей равны «считать»= 4
Проще говоря, это означает, что:
Как мы можем видеть, 644 – это хороший режим доступа для нашего PHP-скрипта. Мы можем вносить в него изменения, а наш сервер может считать его.
Теперь давайте перейдем к папкам. Что будет, если мы владеем папкой, для которой режим доступа задан как 777? Этот режим можно расписать так:
- Привилегии владельца равны «считать»+ «записать»+ «выполнить»= 7
- Привилегии группы владельцев равны «считать»+ «записать»+ «выполнить»= 7
- Привилегии всех остальных пользователей равны «считать»+ «записать»+ «выполнить»= 7
Очевидно, что 777 – плохой режим доступа для любых участков нашего WordPress-сайта, поскольку любой пользователь может добавлять файлы в нашу директорию или даже удалять скрипты. Что еще хуже, любой пользователь может выполнять вредоносный код, тем самым подвергнув опасности наш сайт.
Конфигурации сервера WordPress
Теперь мы знаем все о правах доступа и об их считывании. Но перед тем, как пойти дальше и изменить все наши права доступа, мы должны понять, как именно настроен наш сервер. Поскольку права доступа работают с пользовательскими аккаунтами и группами, мы должны узнать, как именно работает наш WordPress-сайт.
Существует много разных конфигураций сервера. Разные конфигурации требуют разных режимов доступа для корректной и безопасной работы WordPress. Мы рассмотрим две самых популярных конфигурации, а также корректные права доступа для них:
Стандартная конфигурация сервера:
Общая конфигурация сервера или suEXEC конфигурация:
Основная разница между этими двумя конфигурациями – как именно запущен сервер.
Права доступа для стандартной конфигурации сервера WordPress
Стандартные конфигурации WordPress требуют чуть большей работы, нежели виртуальные конфигурации, поскольку веб-сервер не имеет связей с нашим пользовательским аккаунтом.
Владение файлами и папками в WordPress
Для начала мы должны скорректировать владение папками и файлами для наших WordPress-файлов. Мы должны будем убедиться в следующем:
Чтобы узнать группы, к которым принадлежит ваш пользовательский аккаунт, вы можете использовать следующую команду в терминале вашего сервера:
Затем, чтобы узнать группы, к которым принадлежит ваш сервер, вы можете временно вставить следующий PHP-фрагмент в один из ваших скриптов WordPress:
Если ваш пользователь и веб-сервер не принадлежат к одной и той же группе, то вы можете использовать следующую команду в терминале, чтобы добавить пользователя к одной из ваших групп сервера:
Наконец, чтобы убедиться в том, что в нашей папке все принадлежит к нашему пользовательскому аккаунту и имеет общую группу, которую мы только что добавили, мы можем выполнить следующую команду в своей папке WordPress:
Права доступа для WordPress
Все наши папки и файлы должны теперь принадлежать корректным пользователям. Самое время настроить режимы доступа. Вам надо будет запомнить следующее:
- Все файлы должны быть 664.
- Все папки должны быть 775.
- wp-config.php должен быть 660.
Вот то, что мы хотим добиться данными режимами доступа:
Вы можете посчитать, что разрешение WordPress делать абсолютно все с нашими папками не является безопасным. Не беспокойтесь – мы делаем так, поскольку WordPress нуждается в определенных возможностях по созданию и изменению файлов. WordPress позволяет нам закачивать и удалять темы и плагины, редактировать скрипты и стили через бэкэнд администратора. Без данных прав доступа нам пришлось бы всегда вручную загружать темы и плагины через FTP.
Вы можете использовать ваш FTP-клиент, чтобы изменять режимы доступа, либо вы можете использовать следующие команды в вашей папке WordPress, чтобы быстро настроить права доступа для всех ваших файлов и папок:
Обратите внимание, что некоторые веб-серверы в данном плане являются более строгими, чем остальные. Если ваш сервер является строгим, то настройка вашего wp-config.php в 660 может привести к тому, что ваш сайт перестанет работать. В таком случае просто оставьте 664.
Права доступа для SuEXEC конфигурации
Права доступа для общей конфигурации гораздо проще применить. Мы не будем в данном случае останавливаться на владении, поскольку веб-сервер запущен как владелец наших файлов и папок. Наш пользовательский аккаунт и веб-сервер используют те же самые права доступа (оба являются владельцами), поэтому мы можем перейти сразу к изменению режимов доступа:
- Все файлы должны быть 644.
- Все папки должны быть 755.
- wp-config.php должен быть 600.
Аналогично предыдущему случаю, права доступа можно расшифровать следующим образом:
Опять же, вы можете использовать FTP-клиент для того, чтобы изменить режим доступа, либо вы можете использовать следующие команды в вашей папке WordPress, чтобы быстро изменить права доступа ко всем вашим файлам и папкам:
Как и в случае со стандартной конфигурацией WordPress, ваш сервер может быть более строгим, нежели остальные, и поэтому файл wp-config.php не будет задан в 600. В таком случае вы можете поставить для него 640, либо, если и так не сработает, то 644.
Всегда следуйте данным инструкциям, и ваши файлы будут бережно сохранены от злоумышленников.
Распространенные ошибки
Частая ошибка, которую допускают люди, заключается в том, что папка загрузок ставится в 777. Некоторые делают так, потому что они получают ошибки при попытке загрузить изображение на свой сайт, а 777 быстро исправляет данную проблему. Никогда не давайте неограниченный доступ всем пользователям, иначе вы ваш сервер будет уязвимым для атак. Если вы следовали нашему руководству, то в таком случае у вас не должно быть проблем с загрузкой файлов на ваш сайт.
Иногда плагины могут запрашивать установку прав для какого-либо файла в 777. В таких ситуациях вы можете временно установить права в 777, однако убедитесь в том, что вы вернули права доступа обратно после того, как вы закончите работу с плагином.