Какие права должны быть у файлов wordpress

Обновлено: 07.07.2024

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

Вступление

Большинство сайтов работают на серверах, по управлением unix систем. В этих системах существует гибкая настройка прав доступа к различным файлам и папкам, и, пожалуй, каждый сталкивался с этим.

Права доступа определяются для:

  1. Владельца (непосредственно тот пользователь, который создал файл);
  2. Группы (пользователи из той же группы, в которой состоит владелец);
  3. Всех остальных пользователи этого компьютера.

И соответственно сами права доступа:

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

Благодаря этим правам под управлением операционной системы могут работать множество пользователей, не мешая друг другу.

Суть проблемы

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

Ставя права на директории и файлы 777 и 666 соответственно, вы позволяете делать с ними все что угодно. Все действия в ОС происходят от лица какого-либо пользователя. Таким образом, за правами нужно тщательно следить.

Изменить права довольно просто. Делается это либо через терминал сервера с помощью команды chmod , например

Есть способ проще. Права можно поменять, используя FTP клиент, такой как FileZilla или Total Commander.

Да, именно так порой думаю владельцы небольших сайтов (а иногда больших и даже огромных). Дело в том, что сайты взламывают не с целью похитить вашу драгоценную информацию (хотя и это тоже), а, например, рассылать с вашего сайта спам.

Скажем, у вас есть директория в корне сайта, называется images , и в ней хранятся изображения, которые используются на сайте. Права у директории 777, ведь картинки заливаются через CMS, и может так случиться, что система управления пожалуется о том, что не может записать файл, так как нету прав.

Злоумышленник узнает систему управления, пользуясь уязвимостью скрипта закидывает вместо картинки php скрипт, который рассылает спам.

Это конечно самый банальный случай.

Что про WordPress и другие CMS?

В зависимости от режима, в котором работает вебсервер, нужно выбирать следующие права на доступы к файлам и директориям:

или альтернативный вариант:

в зависимости от конфигурации сервера.

Соответственно, это касается не только WordPress, но и других систем управления.

  1. Берегите конфигурационный файл. Нельзя позволять никому, кроме владельца, даже читать документ, где написаны доступы к базе данных;
  2. Никому (кроме владельца и CMS, действующей от имени владельца) нельзя изменять файлы;
  3. Никому (кроме владельца и CMS, действующей от имени владельца) нельзя изменять содержание директорий;

Если при закачивании системы управления на сайт права могут выставиться правильно, то конфигурационный файл останется доступным для чтения всем пользователям сервера по-умолчанию. Права на конфигурационный файл придется менять обязательно!

Что касается WordPress, есть плагины, которые вносят свою лепту в безопасность сайта. Настоятельно рекомендую прописывать следующую директиву в .htaccess файл.

Эта известная директива, которая запрещает к просмотру содержание директорий на сайте.


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

Права доступа и владения очень важны в сборках WordPress. Корректная их настройка на вашем веб-сервере должна быть первым шагом, который вы сделаете после установки WordPress. Наличие неправильного набора прав доступа может вызвать фатальные ошибки, которые приведут к «смерти» вашего сайта. Некорректные права доступа также могут поставить под угрозу ваш сайт, сделать его открытым для атак.

В данной статье мы расскажем вам все о правах доступа для файловой системы WordPress: что они собой представляют, почему они важны, а также как их задать. Также мы рассмотрим несколько основных принципов, которым я следую, чтобы поддержать мою файловую систему в целости и сохранности. Помимо этого, мы раскроем две самых популярных конфигурации сервера WordPress. Мы объясним, чем они отличаются, и, что более важно, как задать соответствующие права доступа для каждой из них.

Терминал против FTP-клиента

На протяжении этой статьи мы будем использовать терминал, чтобы менять права доступа и владения. Почему бы не использовать вместо него FTP-клиент? Причина состоит в том, что FTP несколько ограничен для наших потребностей. FTP может использоваться в том случае, чтобы передавать файлы, а также менять права доступа к файлам и папкам, но он не может менять параметры владения.

Чтобы выполнить команды, перечисленные в данной статье, вам нужно будет войти на свой сервер, используя команду SSH. Если вы не знакомы с терминалом и SSH, вы можете прочитать об этом в статье: «Введение в команды Linux».

Пользователи и группы

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

Чтобы лишний раз не усложнять, пользователь – это аккаунт, у которого есть доступ к компьютеру, а группа – это идентификатор для определенного списка пользователей. Это означает, что всякий раз, когда вы передаете файлы через FTP, вы используете аккаунт пользователя на своем сервере. В зависимости от того, как именно ваш хост настроил ваш аккаунт, вы (пользователь) можете принадлежать к одной или нескольким группам. Пользователи и группы аналогичны пользователям и ролям в WordPress. По своей задумке они практически те же самые, за исключением того, что первые используются на вашем сервере.

Пользователи и группы важны, поскольку они позволяют установить привилегии для всех ваших файлов и папок. Владельцы файла обычно имеют все полномочия по управлению этим файлом; другие пользователи, которые принадлежат к одной и той же группе, могут иметь меньше полномочий по управлению этим файлом; в то время как все остальные пользователи вообще могут не иметь полномочий. Эти привилегии (полномочия) обычно называются правами доступа.

Что представляют собой права доступа к файлам?

Права доступа определяют, что именно пользователи могут сделать с файлом. Права доступа представляются в виде последовательности цифр, как, к примеру, 644 или 777, которая называется режим доступа. Если вы использовали ранее плагины в WordPress, то некоторые из них, скорее всего, просили вас изменить права доступа к файлам или папкам, поскольку плагин не может вести запись. Изменив права доступа к файлам, вы позволите веб-серверу получать доступ к этим файлам или папкам.

Режим доступа – это набор операторов «кто может делать что», в котором каждая цифра соответствует оператору «кто»:

Затем идет число, которое соответствует оператору «что», представляющее собой сумму любой комбинации следующих цифр:

  • 4. Считать файл, либо считать названия файлов в папке
  • 2. Записать или изменить файл, либо изменить контент в папке
  • 1. Выполнить или запустить файл, либо получить доступ к файлам в папке

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

Использование корректного режима доступа очень важно. Чтобы лучше проиллюстрировать это, давайте представим себе роли пользователей в WordPress. На сайте WordPress у участников и администраторов имеется разный набор возможностей. Участники могут создавать новые записи блога, однако они не могут добавлять плагины. Администраторы, с другой стороны, могут добавлять плагины и создавать записи в блоге. Администраторы могут даже изменить вид сайта, если они хотят. Цепочка полномочий разделяет то, что могут делать пользователи в разных ролях. То же самое применимо и к режимам доступа, за исключением того, что мы работаем не с записями блога и опциями темы, а с файлами и папками нашего сервера.

Изменение режимов доступа

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

permission-mode

Если у вас есть доступ к терминалу вашего сервера, вы можете также использовать команду chmod, чтобы изменить режим доступа к файлам или папкам:

Чтобы изменить режим доступа для всех файлов или папок, используйте chmod в тандеме с командой find. К примеру, вы можете использовать ее для изменения прав доступа ко всем файлам на 644:

Или использовать ее для изменения прав доступа ко всем вашим папкам на 755:

Обратитесь к «Изменение прав доступа к файлам в WordPress», чтобы получить руководство по изменению режимов доступа.

Разница между 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 файлов и папок
  • Наш пользовательский аккаунт и пользовательский аккаунт веб-сервера принадлежат к одной и той же группе.

Чтобы узнать группы, к которым принадлежит ваш пользовательский аккаунт, вы можете использовать следующую команду в терминале вашего сервера:

Затем, чтобы узнать группы, к которым принадлежит ваш сервер, вы можете временно вставить следующий PHP-фрагмент в один из ваших скриптов WordPress:

Если ваш пользователь и веб-сервер не принадлежат к одной и той же группе, то вы можете использовать следующую команду в терминале, чтобы добавить пользователя к одной из ваших групп сервера:

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

Права доступа для WordPress

Все наши папки и файлы должны теперь принадлежать корректным пользователям. Самое время настроить режимы доступа. Вам надо будет запомнить следующее:

  • Все файлы должны быть 664.
  • Все папки должны быть 775.
  • wp-config.php должен быть 660.

Вот то, что мы хотим добиться данными режимами доступа:

  • Наш пользовательский аккаунт может считывать и изменять наши файлы.
  • WordPress (через наш сервер) может считывать и изменять наши скрипты.
  • WordPress может создавать, изменять и удалять файлы и папки.
  • Другие пользователи не увидят наши учетные данные для БД в wp-config.php.

Вы можете посчитать, что разрешение WordPress делать абсолютно все с нашими папками не является безопасным. Не беспокойтесь – мы делаем так, поскольку WordPress нуждается в определенных возможностях по созданию и изменению файлов. WordPress позволяет нам закачивать и удалять темы и плагины, редактировать скрипты и стили через бэкэнд администратора. Без данных прав доступа нам пришлось бы всегда вручную загружать темы и плагины через FTP.

Вы можете использовать ваш FTP-клиент, чтобы изменять режимы доступа, либо вы можете использовать следующие команды в вашей папке WordPress, чтобы быстро настроить права доступа для всех ваших файлов и папок:

Обратите внимание, что некоторые веб-серверы в данном плане являются более строгими, чем остальные. Если ваш сервер является строгим, то настройка вашего wp-config.php в 660 может привести к тому, что ваш сайт перестанет работать. В таком случае просто оставьте 664.

Права доступа для SuEXEC конфигурации

Права доступа для общей конфигурации гораздо проще применить. Мы не будем в данном случае останавливаться на владении, поскольку веб-сервер запущен как владелец наших файлов и папок. Наш пользовательский аккаунт и веб-сервер используют те же самые права доступа (оба являются владельцами), поэтому мы можем перейти сразу к изменению режимов доступа:

  • Все файлы должны быть 644.
  • Все папки должны быть 755.
  • wp-config.php должен быть 600.

Аналогично предыдущему случаю, права доступа можно расшифровать следующим образом:

  • Наш пользовательский аккаунт может считывать и изменять наши файлы.
  • WordPress (через наш сервер и аккаунт владельца) может считывать и изменять наши скрипты.
  • WordPress может создавать, изменять и удалять файлы и папки.
  • Другие пользователи не увидят наши учетные данные для БД в wp-config.php.

Опять же, вы можете использовать FTP-клиент для того, чтобы изменить режим доступа, либо вы можете использовать следующие команды в вашей папке WordPress, чтобы быстро изменить права доступа ко всем вашим файлам и папкам:

Как и в случае со стандартной конфигурацией WordPress, ваш сервер может быть более строгим, нежели остальные, и поэтому файл wp-config.php не будет задан в 600. В таком случае вы можете поставить для него 640, либо, если и так не сработает, то 644.

Всегда следуйте данным инструкциям, и ваши файлы будут бережно сохранены от злоумышленников.

Распространенные ошибки

Частая ошибка, которую допускают люди, заключается в том, что папка загрузок ставится в 777. Некоторые делают так, потому что они получают ошибки при попытке загрузить изображение на свой сайт, а 777 быстро исправляет данную проблему. Никогда не давайте неограниченный доступ всем пользователям, иначе вы ваш сервер будет уязвимым для атак. Если вы следовали нашему руководству, то в таком случае у вас не должно быть проблем с загрузкой файлов на ваш сайт.

Иногда плагины могут запрашивать установку прав для какого-либо файла в 777. В таких ситуациях вы можете временно установить права в 777, однако убедитесь в том, что вы вернули права доступа обратно после того, как вы закончите работу с плагином.

WordPress поддерживает около 35% веб-сайтов в Интернете. Это проект с открытым исходным кодом, поэтому все знают о его файлах и структурах папок. Из-за своей популярности и поведения с открытым исходным кодом веб-сайт на базе WordPress становится основной целью для злоумышленников. Есть несколько способов защитить ваш сайт от взлома. Один из них – установка правильных разрешений для файлов и папок, чтобы никто не мог получить доступ к файловой системе, кроме допустимых пользователей.

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

Сохранение неправильных прав доступа к файлам WordPress может использовать ваш сайт для хакеров. Хакеры могут воспользоваться неправильно настроенными правами доступа к файлам.

Правильные права доступа к файлам и папкам в WordPress

Чтобы защитить свои файлы, вы должны сохранить рекомендованные разрешения для файлов и папок вашего проекта WordPress.

  • Для всех папок и подпапок разрешение должно быть 755 или 750.
  • Все файлы должны иметь разрешение 644 или 640, кроме wp-config .php файла.
  • 440 или 400 разрешений для wp-config .php файла.

Если вы сохраняете права доступа 644 или 640, wp-config .php вы предоставляете доступ для чтения другим пользователям на сервере. Не делай этого. Всегда держите 440 или 400 разрешений wp-config .php .

Установите правильные разрешения с помощью FileZilla

Можно установить разрешения для своих файлов и каталогов с помощью программного обеспечения FileZilla. Подключите свой проект к этому FTP-клиенту. После подключения перейдите в корневой каталог вашего проекта.

Выберите все каталоги, щелкните правой кнопкой мыши и выберите Разрешения для файлов.

Как установить правильные права доступа к файлам в WordPress

Как установить правильные права доступа к файлам в WordPress

После завершения разрешений папки давайте изменим права доступа к файлам. Снова выберите все файлы и папки из корневой папки. Щелкните правой кнопкой мыши и выберите права доступа к файлу.

Появится диалоговое окно с правами доступа к файлам. На этот раз введите 644 в поле числового значения. Установите флажок «Повторять в подкаталоги», а затем выберите вариант «Применить только к файлам».

Как установить правильные права доступа к файлам в WordPress

Щелкните кнопку ОК. Теперь ваш FTP-клиент установит 644 разрешения для всех файлов в ваших папках и подпапках.

Таким же образом измените разрешение для wp-config .php файла. При изменении разрешения для wp-config .php , вам просто нужно ввести 440 или 400 в числовое поле и нажать кнопку ОК.

Установите правильные разрешения с помощью Shell Access

Если у вас есть доступ к вашему серверу через оболочку, то, выполнив несколько команд, вы можете установить разрешения для своих файлов и папок.

Измените права доступа к папке на 755, выполнив следующую команду.

Чтобы изменить права доступа к файлу на 644, выполните следующую команду.

Скажем, в моем случае / path / to / your / wordpress / install / будет заменен на / var / www / html /, поэтому команды будут следующими:

В приведенных выше командах «-type d» для каталогов и -type f для файлов.

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

Надеюсь, вы понимаете, как правильно установить права доступа к файлам и папкам в WordPress. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.


И так Вы уже стали счастливым обладателем своего сайта под управлением WP и готовы перенести ресурс на хостинг с локального сервера. Но так как локальный сервер использует специфическое программное обеспечение, а если мы говорим о Open Server то практически все что есть на настоящем сервере имеется на борту и здесь.

Что такое разрешения для папок и файлов в WordPress?

У локального сервера имеются свои специфические права как на каталоги так и на файлы. Благодаря данным разрешениям локальный сервер производит операции с файлами дает доступ на чтение и редактирование для той или иной учетной записи. Зачастую никаких проблем при работе с сайтом локально у пользователя не возникает, головная боль начинается при переносе (или после переноса) локального проекта на настоящий хостинг. Ведь на хостинге скорее всего установлен Linux у которого совершенно свои специфические предпочтения касаемо прав доступа.

Бывают разные варианты поведения перенесенного сайта на хостинге, это может быть сразу после переноса ошибка установки плагина, не возможность создания каталога WordPress’om или же невозможность создать запись. Но часто случается что нет никаких оповещений и вроде бы сайт работает нормально и лишь со временем появляется ошибка указывающая на неверно установленные права.

Устанавливаем правильные права на каталоги (папки) и файлы для CMS WordPress

Если Вы правильно установили разрешения для файлов и папок, тогда WordPress может правильно производить операции с файлами и каталогами на стороне хостинга. А именно создавать файлы и папки, производить в них чтение и запись. Для большинства хостингов разработчики WordPress рекомендуют следующие права:

Права для каталогов любого уровня вложенности (папок и подпапок)

Права для всех файлов имеющихся на сайте

Установка правильных прав через FileZilla

Подсоединитесь к своему сайту через FTP менеджер FileZilla, перейдите в корень Вашей WordPress CMS. Далее нажмите Ctrl+A для выделения всех файлов и папок, сделайте щелчок правой клавишей мыши и в выпадающем меню нажмите “Права доступа к файлу”

WordPress - Выставляем автоматически правильные права на все файлы и папки сайта по FTP

WordPress - Выставляем автоматически правильные права на все файлы и папки сайта по FTP

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

Для этого снова переходим в корень установленной CMS WordPress нажимаем Ctrl+A, после чего делаем щелчок правой клавишей мыши и в выпадающем меню выбираем “Права доступа к файлу” (все повторяем как ранее).

WordPress - Выставляем автоматически правильные права на все файлы и папки сайта по FTP

После вышеописанных манипуляций все права должны быть прописаны верно, можно выпить кофе и посмотреть игру престолов :).

Читайте также: