|
Новичок
Регистрация: 08.02.2014
Сообщений: 4
С нами:
6452246
Репутация:
0
|
|
Как проверить права файлов на сервере с CMS — кто сталкивался?
Как проверить права файлов на сервере с CMS — кто сталкивался?
Права файлов на сервере оказывают решающее влияние на безопасность и стабильность любой CMS. У многих вебмастеров, особенно начинающих, с этим бывают проблемы и недопонимания, что именно надо проверять и к чему это может привести. В общем, решил собрать немного инфы, поделиться своим опытом и спросить у вас, кто как проверяет права на своих форумах, блогах или сайтах на разных движках.
Что такое права файлов и зачем они нужны?
Вкратце, права — это набор правил, которые определяют, кто и что может делать с файлами и папками на сервере. Обычно эти правила разбиты на три группы: владелец файла, группа и остальные пользователи сервера. Для каждой группы можно задать разные права — читать файл, писать (то есть изменять) и выполнять (для скриптов и программ).
Пример: права файла могут выглядеть как 644 — это значит, владелец может читать и писать (6 = 4+2), а все остальные только читать (4). Или 755 — владелец может читать/писать/запускать, а остальные читать и запускать (для папок и скриптов).
Почему это важно? Если неправильно выставить права, кто-то может получить доступ к конфигам с паролями, удалить или поменять скрипты или страницы, а то и загрузить какую-то гадость. Поэтому хороший админ всегда проверяет и ставит правильные права.
Где проверять и на что обращать внимание?
Права нужны по умолчанию везде, где есть файлы CMS, но особенно критичные места:
- Конфигурационные файлы, например wp-config.php для WordPress, configuration.php для Joomla, inc/config.php для phpBB. Эти файлы содержат важные данные, включая пароли к базе, и их нельзя открывать посторонним.
- Папки с загружаемыми файлами — uploads, images, а также папки для временных файлов и кеша как cache, tmp. Задача — чтобы CMS могла туда писать, а остальные не могли бездумно менять файлы.
- Скрипты админки и авторизации. Нельзя, чтобы кто-то имел права на запись в эти папки или мог редактировать скрипты.
- Логи и бэкап-файлы. На них иногда делают забывчивые права, и любой может скачать архив соцсети или базы.
Если хочешь быть осторожным, лучше точно знать, какие права на отдельных файлах и папках выставлены.
Как проверить права?
Самый простой способ — зайти на сервер по SSH и выполнить команду ls -l в каталоге сайта. Она выведет список файлов с правами, владельцами и группами.
Пример вывода:
-rw-r--r-- 1 user user 4200 Apr 26 12:00 wp-config.php
Здесь -rw-r--r-- означает, что владелец (user) имеет право читать и писать, а группа и остальные — только читать. В нашем случае это нормально для конфига, если владелец — пользователь, под которым работает веб-сервер.
Если нет доступа по SSH, многие хостинги или панели управления (cPanel, ISPManager, Plesk) позволяют посмотреть и поменять права через файловый менеджер — там обычно можно кликнуть правой кнопкой по файлу и выбрать "Change Permissions" или что-то похожее.
Типичные ошибки в правах файлов
- wp-config.php или аналогичный конфиг с правами 666 — это люфт страшнее бреши в стене. Тогда любой пользователь на сервере может прочитать содержимое файла и взять доступ к базе.
- Папки uploads или images с правами 777 — дают полное право на чтение, запись и запуск всем! Это приглашение к беде. Лучше 755 с владельцем, совпадающим с процессом веб-сервера.
- Скрипты с правами 777 — не нужно! Исполнять и писать одновременно — путаница и опасность.
- Распространённая ошибка — не учитывать, под каким пользователем запущен веб-сервер. Например, если сервер работает под www-data, а файлы принадлежат root, CMS не сможет правильно записывать файлы даже с правами 755.
- Оставлять бэкапы или лог-файлы с правами, позволяющими их качать через браузер.
Практические рекомендации и примеры настройки прав
Для WordPress, например, часто рекомендуют:
- wp-config.php — 600 или 640 (только владелец может читать и писать).
- Сам сайт — файлы 644, папки 755, чтобы веб-сервер мог читать и выполнять.
- Папка wp-content/uploads — 755, чтобы CMS могла записывать и менять содержимое.
- Скрипты ядра — 644, чтобы никто лишний не изменял.
Для Joomla:
- configuration.php — 640 или 600.
- Папки cache, logs — 755.
- Подобным образом держать права на остальные каталоги.
Чек-лист для проверки прав на сервере с CMS
1. Убедиться в правах на конфиг — 600 или 640 максимально.
2. Проверить права на папки с загрузками и временными файлами — 755.
3. Правильно выставить права на скрипты — 644.
4. Посмотреть владельца и группу файлов — должны совпадать с пользователем веб-сервера.
5. Исключить права 777 на любые папки и файлы, если это не крайняя необходимость и осознанно.
6. Проверить, что нет публичного доступа к бэкапам и логам (например, через браузер).
7. Использовать команды вроде ls -l для обзора, или панели управления хостингом.
8. Настроить регулярные ревизии прав, например, через скрипты, чтобы не забыть.
FAQ — частые вопросы по правам
- Можно ли поставить все права на 777 и "забыть", чтобы ничего не ломалось?
Нет, это опасно. 777 даёт полный доступ всем, и если на сервере есть другие пользователи или уязвимости в CMS, это риск взлома.
- Что делать, если CMS не пишет в папку upload?
Скорее всего, проблема в правах или в владельце папки. Проверьте, что владелец совпадает с веб-сервером, и папка имеет права 755 или 775.
- Как узнать, под каким пользователем работает веб-сервер?
Через SSH можно использовать команду ps aux | grep apache или ps aux | grep nginx. Если нет доступа, спросите у хостера.
- Можно ли изменять права через FTP?
Да, большинство FTP-клиентов позволяет менять права файлов (chmod). Но иногда лучше делать это через SSH.
- Если я пользовался плагинами безопасности, они сами не настроят права?
Некоторые плагины могут частично проверить права, но лучше делать это вручную, особенно для важных файлов.
- Какие бывают атрибуты файлов кроме rwx, и нужны ли они для безопасности?
Например, в Linux есть chattr (атрибуты), можно поставить immutable — запретить изменение файла. Полезно для важных конфигов.
Итог
Настройка прав — фундаментальная часть безопасности сервера с CMS, не стоит пренебрегать этим. Особенно если есть доступ к SSH, желательно минимум раз в месяц просматривать права и владельцев файлов. Если что-то непонятно — спрашивайте, давайте вместе разберёмся. Важно всегда поддерживать баланс — дать системе возможность работать и одновременно защититься от посторонних.
Пишите, кто как проверяет и какие ещё инструменты и лайфхаки используете. Может, есть сценарии или скрипты, чтобы автоматизировать контроль прав? Поделитесь опытом!
|