Права доступа к файлам являются очень важной частью защиты вашего веб-сайта. Они держат сайт закрытым, предоставляя самому WordPress, его плагинам и другим скриптам возможность изменять то, что им нужно.
Но иногда что-то может пойти не так. Могут возникнуть ошибки или права доступа к файлам будут изменены на неподходящие значения. В этом случае полезно знать, как работаю эти права WordPress и как их использовать.
Ниже узнаете все, что нужно знать о разрешениях файлов, как их изменить и о передовых методах, благодаря которым сайт будет работать без сбоев.
Понимание уровней разрешений файлов
Чтобы узнать, как изменить права доступа в WordPress, сначала нужно понять основы. Рассмотрим их на примере Linux. Вот краткий экспресс-курс по этой теме.
Типы разрешений
Существует три основных типа разрешений, которые могут иметь файлы. Вы можете устанавливать их не только для отдельных файлов, но и для целых каталогов/папок.
- Чтение (r) — позволяет пользователю просматривать содержимое или их имена в каталоге.
- Write (w) – Разрешение на запись позволяет пользователю изменять содержимое. Они также могут создавать, удалять или переименовывать файлы в каталоге.
- Выполнить (x) — здесь пользователи могут запускать программы и скрипты или получать доступ к данным каталога и подкаталогам.
Группы разрешений
Однако кто именно может иметь эти разрешения (permission)? В Linux есть три группы людей, которые могут получить доступ к файлу/каталогу.
- Пользователь (u) – относится к владельцу (обычно создателю) файла/каталога.
- Группа (g) – Несколько пользователей, которые имеют общие уровни разрешений. Любой пользователь может быть в одной или нескольких группах.
- Другие, все или публичные (o) — любые пользователи, которые не являются владельцами и не входят в определенную группу.
Для каждого из них можете установить различные уровни permission. В WordPress они называются ролями пользователей. Например, вы бы не хотели, чтобы случайный подписчик веб-сайта имел те же разрешения, что и администратор. Это было бы рецепт катастрофы.
Символьные и числовые обозначения
Когда имеете дело с правами доступа, они представлены либо в символьной, либо в числовой форме.
Символическая нотация использует буквы выше для обозначения разрешений на чтение (r), запись (w) и выполнение (x) или тире при их отсутствии. Они сгруппированы в три набора по три буквы, причем первые три буквы относятся к пользователям (u), следующие три — к группам (g), а последние три — к другим (o).
Рассмотрим следующий пример: rwxr-xr--
здесь у пользователя есть полные разрешения (rwx), у группы - на чтение и выполнение (rx), а у группы «Другие» есть только на чтение (r–).
При использовании числовой нотации каждому разрешению присваивается значение:
- Читать (р) = 4
- Записывать (w) = 2
- Выполнять (x) = 1
Они складываются, образуя трехзначное число, представляющее permission для пользователя, группы и других.
Используя тот же пример выше, разрешение пользователя равно 7 (r + w + x), группы — 5 (r + x), а других — 4 (r). Это означает, что числовое обозначение того же уровня — 754.
Права доступа к файлам в WordPress
В контексте WordPress и веб-сайтов в целом, права доступа к файлам используют те же принципы, что и выше. Но есть также несколько отличий, о которых следует знать.
- Владение. В среде WordPress файлы и каталоги часто принадлежат процессу веб-сервера (www-data для Apache и nginx для NGINX), а не отдельным пользователям.
- Вопросы плагинов и тем – плагины WordPress могут требовать доступ на чтение и запись к определенным файлам и каталогам для правильной работы. Плагины обычно используют API file системы для безопасного взаимодействия с сервером.
- Некоторые группы уже встроены – как уже упоминалось, WordPress использует встроенные роли, такие как Администратор, Редактор и Участник. Участники имеют возможность создавать и редактировать только свои статьи, а не чужие. Функционально это означает, что у них есть разрешение на чтение всех постов/страниц и на чтение/запись постов/страниц, которые они создают.
- Обратите внимание на среды общего хостинга – общий хостинг может вызывать проблемы с разрешениями файлов. Некоторые из них могут быть заблокированы, чтобы другие пользователи мультивебсайтного сервера не могли получить доступ к конфиденциальным данным. Можете обнаружить, что некоторые файлы установлены только для чтения даже для администраторов, требуя уровень root для редактирования.
Смотрите также:
Опасности неправильных разрешений на доступ
Теперь возникает вопрос, почему это вообще важно? Почему вас должна волновать эта очень техническая тема?
Причина в том, что права доступа к файлам являются основой безопасности веб-сайта. Слишком небрежное отношение к ним может серьезно поставить под угрозу сайт следующими способами:
- Взлом и вредоносное ПО – неправильные permission позволяют хакерам проскользнуть и сделать практически все, что они захотят, включая установку вредоносного ПО, просмотр личных данных или удаление вашего сайта.
- Захват сайта. Если кому-то удастся взломать ваш сайт благодаря недостаточным разрешениям, он может легко завладеть учетной записью и лишить вас доступа к собственному сайту.
- Утечка данных. Неправильные разрешения могут привести к тому, что посетители получат доступ к личным данным, включая изображения, незаконченные/тестовые/черновые страницы и конфиденциальные данные.
- Неправильный доступ. Определенные permission могут позволить пользователям изменять существующие файлы на вашем веб-сайте или загружать и выполнять вредоносные скрипты.
Но дело не только в слишком больших правах, их может быть и слишком мало. Слишком строгие разрешения неизбежно сломают сайт, не давая WordPress нормально функционировать. С permission на файлы существует тонкая грань между слишком большими и недостаточными.
Лучшие практики
Прежде чем начнете упорядочивать сайт в поисках чего-нибудь не на своем месте, важно знать, как выглядит хорошая практика для прав доступа к файлам WordPress.
Не меняйте разрешения без необходимости
Первое, что важно иметь в виду, это то, что в большинстве случаев не нужно менять права доступа. Если пользуетесь услугами хорошего хостинг-провайдера и правильно устанавливаете WordPress, эта часть сайта должна быть настроена правильно автоматически.
Так что, если только не столкнулись с конкретной ошибкой WordPress, не трогайте права доступа, особенно если не знаете, что делаете. Вмешательство в настройки, которые не понимаете, может принести больше вреда, чем пользы.
Некоторые веб-хосты, особенно общие, могут сделать некоторые permission более ограничивающими из-за характера хостинга. Если возникла проблема с недостаточными разрешениями, возможно, лучше всего связаться с хостером и попросить о помощи.
Рекомендуемые уровни
Если столкнулись с проблемой и не уверены, какие настройки разрешений должны быть установлены для файлов и каталогов, информация об этом есть в официальной документации WordPress.
Ниже приведен краткий обзор рекомендуемых разрешений для различных структур данных. Однако помните, что это зависит от настройки.
- Директории – 755 (rwer-er-e). Для корректной работы сервера большинству директорий необходимы права на выполнение.
- Файлы + .htaccess – 644 (rw-r–r–). Это позволяет пользователям видеть публичные файлы на сайте, не имея возможности редактировать их.
- wp-config.php – варьируется; 400 (r——–), 440 (r–r—–), 600 (rw——-) или 640 (rw-r—–) может быть подходящим в зависимости от настроек сайта и потребностей безопасности. Самый важный шаг – предотвратить доступ случайных посетителей.
Не будьте слишком строги
Поиск правильного баланса с разрешениями файлов может быть стрессовым, но вы не можете просто установить их все на «000». Хотя такой сайт будет максимально безопасным, но в то же время никто не сможет им воспользоваться.
Функции на сайте, от веб-сервера до плагинов и самого WordPress, естественно, нуждаются в некотором доступе к определенным файлам и каталогам для продолжения правильной работы. Даже посетители, которым не следует предоставлять права на запись или выполнение большинства файлов, должны, по крайней мере, иметь возможность «читать» общедоступные части сайта.
Может возникнуть соблазн ограничить права доступа, но тогда будет нанесен серьезный ущерб. Когда плагины и функции перестают работать, на панели управления появляется множество предупреждений. В качестве примера, если отключить доступ WordPress к основным файлам, появиться белый экран смерти.
Используйте принцип наименьших привилегий
Принцип наименьших привилегий гласит, что пользователям (включая веб-сервер и сам WordPress) следует предоставлять ровно столько прав, сколько необходимо для выполнения их работы.
Предоставление права «root» означает предоставление полного контроля за всей системой, что обычно является чрезмерным. Если хакер получит доступ к сайту WordPress с привилегиями root, он может потенциально посеять хаос на всем сервере.
Вместо этого владельцем большинства файлов обычно должен быть пользователь веб-сервера, обычно nginx (NGINX) или www-data (Apache), оба из которых имеют только необходимые permission для правильной работы. Это ограничивает ущерб, который могут нанести злоумышленники.
Есть некоторые ситуации, когда необходимо владение root, поэтому не следует менять разрешения, если не понимаете, что делаете. В то же время, это может быть причиной для беспокойства – особенно если заметили, что владелец внезапно изменился.
В любой другой ситуации, когда создаете файлы или назначаете владельцев, следуйте принципу наименьших привилегий. Не выдавайте чрезмерных разрешений на чтение, запись или выполнение. Большинству данных, которые создаете на своем сервере, не нужны права root.
Создайте резервную копию сайта
Прежде чем изменять на веб-сайте какие-либо конфиденциальные настройки, лучше всего сделать резервную копию веб-сайта и базы данных.
При изменении permission все может пойти не так, поэтому это обеспечивает безопасность. Если что-то на веб-сайте сломается случайно, то можно просто откатить свой сервер.
Никогда не используйте 777
Установка прав доступа 777 для любого файла или каталога фактически дает всем в мире полную свободу управления вашим сайтом.
Это дает любому случайному посетителю возможность просматривать файлы, редактировать и удалять их, загружать потенциально вредоносные программы и выполнять скрипты. Очевидно, что это ужасная идея.
Хотя может показаться, что предоставление полных прав доступа только одному файлу — это безобидно, опытный хакер может легко воспользоваться этим, чтобы выполнить вредоносный скрипт или повысить свои привилегии и глубже проникнуть на сервер. Так что просто не делайте этого.
Как изменить права доступа в WordPress
Теперь, когда мы рассмотрели лучшие практики настройки прав доступа, давайте узнаем, как их изменить в различных настройках сервера.
cPanel или панель инструментов
Большинство веб-хостов предлагают cPanel или какую-либо другую пользовательскую панель управления. В cPanel обычно можно перейти в File Manager, затем щелкнуть правой кнопкой мыши любую папку или файл и нажать Change Permissions.
FTP/SFTP
Можно изменить разрешения, используя FTP/SFTP. Начните с установки FTP-клиента, например FileZilla, и войдите на свой сервер. Щелкните правой кнопкой мыши любой файл или папку и выберите File permission...
Затем введите числовое значение или просто отметьте галочками поля, которые хотите установить.
SSH/Командная строка
Для этого шага используйте инструмент доступа к командной строке. Обычно он предоставляется вашим веб-хостингом. Используйте команду cd
для перехода в каталог или подкаталога, который собираетесь изменить. Например:
cd public_html/example_folder
Изменить права доступа можно с помощью chmod
команды.
chmod 755 example.html
Также можно рекурсивно установить permission для всего каталога сразу, но будьте осторожны, делая это:
chmod -R 755 example_subfolder
Использовать плагин
Некоторые плагины безопасности позволят легко переключать permission с панели управления. Одним из примеров является All-In-One Security (AIOS).
Распространенные ошибки прав доступа в WordPress
Наконец, давайте рассмотрим несколько распространенных подобных ошибок в WordPress и причины их возникновения.
- 403 Forbidden (У вас нет разрешения на доступ на этом сервере) – увидите эту ошибку, если попытаетесь получить доступ, не имея разрешения на чтение. Например, посетители столкнутся с этим, если попытаются получить доступ к неопубликованным статьям или страницам. Проверьте свои разрешения, если видите это как администратор.
- Отсутствуют требуемые права доступа– эту ошибку могут выдавать некоторые плагины. Это может быть вызвано тем, что файлы веб-сайта не принадлежат nginx или www-data .
- Прежде чем сохранять изменения, необходимо сделать этот файл доступным для записи. Такое предупреждение появится в редакторе WordPress, если у вас нет прав на запись.
- Отказано в доступе. Код ошибки: 3 — эта ошибка появляется при попытке изменить или загрузить файлы на сайт. Причины могут быть разными, включая файлы сайта, принадлежащие пользователю root вместо nginx или www-data, необходимость доступа root или просто отсутствие прав на чтение/запись.
- Установка не удалась: не удалось создать каталог. Если видите это сообщение при установке или обновлении тем и плагинов, это означает, что у WordPress нет прав на запись в каталог, который он пытается использовать.
Система разрешений является очень важной частью поддержания безопасности веб-сайта, поэтому не стоит менять их легкомысленно. Одна небольшая настройка может сломать веб-сайт или позволить хакерам легче проскользнуть.
Но хорошо знать, как работают эти разрешения, особенно если начинают возникать ошибки. Теперь вы знаете, что делать — и что категорически нельзя делать — если вам когда-нибудь понадобится изменить разрешения на файлы WordPress.
Источник: torquemag.io
Комментарии к записи: 0