Права доступа и владения файлов и папок очень важны в сборках WordPress. Корректная их настройка на веб-сервере должна быть первым шагом, который вы сделаете после установки WordPress. Наличие неправильного набора прав доступа может вызвать фатальные ошибки, которые приведут к неработоспособности сайта или наличию критических уязвимостей, поставят под угрозу ваш сайт, сделают его открытым для атак.
Кроме того, некорректные права доступа могут стать причиной проблем с постоянными сылками. Подробно читайте в нашей заметке — Не работают постоянные ссылки в WordPress
Помимо проблем безопасности, наличие неправильного набора прав доступа может привести и к другим проблемам. Корректировка прав доступа и владения файлами и папками зачастую устраняет все эти проблемы.
Владение файлами и папками в WordPress.
Для начала необходимо скорректировать владение папками и файлами для наших WordPress-файлов. Мы должны убедиться в следующем:
- Наш пользовательский аккаунт является владельцем всех WordPress файлов и папок
- Наш пользовательский аккаунт и пользовательский аккаунт веб-сервера принадлежат к одной и той же группе.
Чтобы узнать группы, к которым принадлежит ваш пользовательский аккаунт, вы можете использовать следующую команду в терминале вашего сервера:
groups
Затем, чтобы узнать группы, к которым принадлежит ваш сервер, вы можете временно вставить следующий PHP-фрагмент в один из ваших скриптов WordPress:
echo exec( 'groups' );
Если ваш пользователь и веб-сервер не принадлежат к одной и той же группе, то вы можете использовать следующую команду в терминале, чтобы добавить пользователя к одной из ваших групп сервера:
sudo usermod -a -G myuser
Наконец, чтобы убедиться в том, что в нашей папке все принадлежит к нашему пользовательскому аккаунту и имеет общую группу, которую мы только что добавили, мы можем выполнить следующую команду в своей папке WordPress:
sudo find . -exec chown myuser:a-common-group-name {} +
При необходимости сменить владельца папок и всех вложенных элементов можно командой:
sudo chown -R user:group /home/user/dir/
Права доступа для 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.