На Linux-серверах права доступа к файлам играют важную роль в безопасности и работе сайта. Неправильно настроенные права делают сайт уязвимым для атак или, наоборот, нарушают его нормальную работу. Каждый веб-разработчик и владелец сайта должен знать команду chmod и основные комбинации прав. Техническая поддержка Sayt.uz ежедневно получает вопросы клиентов о правах доступа, и эта статья охватывает самые частые случаи.
Как работают права в Linux
Для каждого файла или папки задаются права для трех групп пользователей: owner (владелец), group (группа), others (остальные). Для каждой группы есть три типа операций: read (чтение), write (запись), execute (выполнение). Права записываются в числовой форме: read = 4, write = 2, execute = 1. Эти числа складываются: 7 = 4+2+1 (полные права), 6 = 4+2 (чтение и запись), 5 = 4+1 (чтение и выполнение), 4 = 4 (только чтение). Три числа записываются подряд, например 755 — 7 для owner, 5 для group, 5 для others.
644 — стандарт для файлов
Для обычных файлов сайта (HTML, CSS, JS, PHP, изображения) стандартное право — 644. Это дает владельцу чтение и запись (6), а группе и остальным — только чтение (4). Эта комбинация позволяет посетителям видеть сайт, но они не могут изменять файлы. Только владелец (FTP-пользователь) может редактировать файлы. Это самый безопасный и стандартный вариант, подходящий почти для всех веб-файлов. WordPress тоже рекомендует именно эти права.
755 — для папок и исполняемых файлов
Для папок стандартное право 755: владельцу полный доступ (7 = чтение, запись, вход), группе и остальным — чтение и вход (5). Для папок право "execute" означает возможность войти внутрь, для обычных файлов — выполнить скрипт. Для bash-скриптов и CGI-файлов тоже используется 755. В WordPress public_html и все папки внутри должны иметь 755. Рекурсивная настройка: find /path/to/site -type d -exec chmod 755 {} \;
777 — опасно, использовать не рекомендуется
Право 777 дает всем пользователям полный доступ. Это никогда не должно использоваться, потому что любой пользователь (включая вредоносный код) может изменить файл. Многие новички для решения проблемы "сайт не работает" ставят 777 на все файлы — это серьезная ошибка. Если для работы сайта нужны расширенные права, достаточно 755 или 775. 777 часто помечается хостинг-компаниями как источник заражения, и аккаунт могут заблокировать.
Жесткие права для важных файлов
Файлы с конфиденциальными данными требуют более строгих прав. wp-config.php в WordPress хранит пароль БД, поэтому ему рекомендуется 600 или даже 400. 600 — только чтение и запись для владельца, остальным никаких прав. Файлы .env, .htpasswd и подобные тоже должны быть защищены аналогично. Такие ограничения гарантируют, что эти файлы недоступны извне и резко повышают безопасность.
Практика Sayt.uz
Для клиентов хостинга Sayt.uz права доступа автоматически настраиваются правильно. В разделе "Файловый менеджер" личного кабинета можно посмотреть и изменить права каждого файла или папки. Если вы случайно поставили 777 на все файлы, кнопка "Восстановить права" автоматически вернет файлы к 644, а папки к 755. Функция работает с WordPress, Joomla и другими CMS. Техподдержка Sayt.uz поможет в любой ситуации.
Команды для проверки и изменения
Через SSH права проверяются командой "ls -la", показывающей права каждого файла или папки. Первый символ — тип (d = папка, - = файл), остальные — права. Для массового изменения полезна find: все файлы в 644 — "find . -type f -exec chmod 644 {} \;", все папки в 755 — "find . -type d -exec chmod 755 {} \;". Эти команды быстро возвращают сайт к стандартным правам.