Права доступу до файлів є важливою частиною захисту вашого веб-сайту. Вони тримають сайт закритим, надаючи самому WordPress, його плагінам та іншим скриптам можливість змінювати те, що їм потрібно.
Але інколи щось може піти не так. Можливі помилки або права доступу до файлів будуть змінені на невідповідні значення. У цьому випадку корисно знати, як працюю ці права WordPress та як їх використовувати.
Нижче дізнаєтеся про все, що потрібно знати про дозволи файлів, як їх змінити і про передові методи, завдяки яким сайт працюватиме без збоїв.
Розуміння рівнів дозволів файлів
Щоб дізнатися, як змінити права доступу WordPress, спочатку потрібно зрозуміти основи. Розглянемо їх з прикладу Linux. Ось короткий експрес-курс на цю тему.
Типи дозволів
Існує три основні типи дозволів, які можуть мати файли. Ви можете встановлювати їх не тільки для окремих файлів, але й для каталогів/папок.
- Читання (r) — дозволяє користувачеві переглядати вміст або їх імена у каталозі.
- Написати (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 нормально функціонувати. З використанням файлів існує тонка грань між занадто великими і недостатніми.
Найкращі практики
Перш ніж почнете впорядковувати сайт у пошуках чогось не на своєму місці, важливо знати, як виглядає хороша практика для доступу до файлів WordPress.
Не змінюйте дозволи без необхідності
Перше, що важливо мати на увазі, те, що в більшості випадків не потрібно змінювати права доступу. Якщо користуєтеся послугами гарного хостинг-провайдера і правильно встановлюєте WordPress, ця частина сайту має бути настроєна правильно автоматично.
Так що, якщо тільки не зіткнулися з конкретною помилкою WordPress, не чіпайте права доступу, якщо не знаєте, що робите. Втручання в параметри, які не розумієте, може принести більше шкоди, ніж користі.
Деякі веб-хости, особливо загальні, можуть зробити деякі permission більш обмежуючими через характер хостингу. Якщо виникла проблема з недостатнім дозволом, можливо, найкраще зв'язатися з хостером і попросити про допомогу.
Рекомендовані рівні
Якщо ви зіткнулися з проблемою і не впевнені, які налаштування дозволів повинні бути встановлені для файлів і каталогів, інформація про це є в офіційної документації WordPress.
Нижче наведено короткий огляд рекомендованих дозволів для різних структур даних. Однак пам'ятайте, що це залежить від налаштування.
- Директорії - 755 (rwer-er-e). Для коректної роботи сервера більшості директорій необхідні права виконання.
- Файли +. - 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), обидва з яких мають тільки необхідне відправлення для правильної роботи. Це обмежує збитки, які можуть завдати зловмисники.
Є деякі ситуації, коли потрібне володіння root, тому не слід змінювати дозволи, якщо не розумієте, що робите. У той же час це може бути причиною для занепокоєння – особливо якщо помітили, що власник раптово змінився.
У будь-якій іншій ситуації, коли створюєте файли або призначаєте власників, дотримуйтесь принципу найменших привілеїв. Не видавайте надмірних дозволів на читання, запис чи виконання. Більшості даних, які створюєте на своєму сервері, не потрібні права root.
Створіть резервну копію сайту
Перш ніж змінювати конфіденційні налаштування на веб-сайті, найкраще зробити резервну копію веб-сайту та бази даних.
При зміні permission все може піти не так, тому це забезпечує безпеку. Якщо щось на веб-сайті зламається випадково, можна просто відкотити свій сервер.
Ніколи не використовуйте 777
Встановлення прав доступу 777 для будь-якого файлу чи каталогу фактично дає всім у світі повну свободу керування вашим сайтом.
Це дає будь-якому випадковому відвідувачу можливість переглядати файли, редагувати та видаляти їх, завантажувати потенційно шкідливі програми та виконувати скрипти. Очевидно, що це жахлива ідея.
Хоча може здатися, що надання повних прав доступу тільки одному файлу - це нешкідливо, досвідчений хакер може легко скористатися цим, щоб виконати шкідливий скрипт або підвищити свої привілеї та глибше проникнути на сервер. Тож просто не робіть цього.
Як змінити права доступу в WordPress
Тепер, коли ми розглянули найкращі практики налаштування прав доступу, дізнайтеся, як їх змінити в різних налаштуваннях сервера.
cPanel або панель інструментів
Більшість веб-хостів пропонують cPanel або будь-яку іншу панель керування користувача. У cPanel зазвичай можна перейти в File Managerпотім клацнути правою кнопкою миші будь-яку папку або файл і натиснути Змінити дозволи.
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 з панелі керування. Одним із прикладів є Безпека «все в одному» (AIOS).
Поширені помилки прав доступу до WordPress
Нарешті, давайте розглянемо кілька поширених подібних помилок WordPress і причини їх виникнення.
- 403 Forbidden (У вас немає дозволу на доступ на цьому сервері) – побачите цю помилку, якщо спробуєте отримати доступ, не маючи дозволу читати. Наприклад, відвідувачі зіткнуться з цим, якщо спробують отримати доступ до неопублікованих статей або сторінок. Перевірте свої дозволи, якщо це бачить як адміністратор.
- Відсутні необхідні права доступу- Цю помилку можуть видавати деякі плагіни. Це може бути викликано тим, що файли веб-сайту не належать Nginx або www-data .
- Перш ніж зберігати зміни, необхідно зробити цей файл доступним для запису. Таке попередження з'явиться в редакторі WordPress, якщо ви не маєте прав на запис.
- Відмовлено в доступі. Код помилки: 3 — Ця помилка з'являється під час спроби змінити або завантажити файли на сайт. Причини можуть бути різними, включаючи файли сайту, що належать користувачеві корінь замість Nginx або www-data, необхідність доступу root або просто відсутність прав на читання/запис.
- Встановлення не вдалося: не вдалося створити каталог. Якщо бачите це повідомлення при встановленні або оновленні тем і плагінів, це означає, що WordPress не має прав на запис у каталог, який він намагається використовувати.
Система дозволів є дуже важливою частиною підтримки безпеки веб-сайту, тому не варто змінювати їх легковажно. Одна невелика настройка може зламати веб-сайт або дозволити хакерам легше прослизнути.
Але добре знати, як працюють ці дозволи, особливо якщо починають виникати помилки. Тепер ви знаєте, що робити – і що категорично не можна робити – якщо вам коли-небудь знадобиться змінити дозволи на файли WordPress.
Джерело: torquemag.io
Коментарі до запису: 0