Что такое права доступа к файлам на хостинге и что означают 644 и 755

В файловом менеджере хостинга рядом с файлами сайта иногда можно увидеть загадочные числа 644, 755, 600 или 777. Они же встречаются в инструкциях по переносу сайта и устранению ошибок. Совет обычно звучит просто: установите для файлов 644, для папок 755, и все заработает.

Иногда действительно заработает. Но гораздо полезнее понимать, что означают эти цифры и почему бездумно менять права доступа опасно.

Права определяют, кому разрешено читать файл, изменять его или выполнять определенные действия. Благодаря им веб-сервер может открыть посетителю страницу, PHP получает доступ к нужным данным, а посторонний пользователь сервера не должен иметь возможности переписать файлы вашего сайта.

Ошибочные права способны проявляться совершенно по-разному. Сайт может выдавать 403, CMS перестает устанавливать обновления, изображения не загружаются, плагин не может создать файл кеша. Бывает и обратная ситуация: сайт прекрасно работает, но его файлы открыты для изменения гораздо шире, чем необходимо.

Разберемся, как устроены права доступа, откуда взялись числа 644 и 755 и почему 777 не является волшебной командой для ремонта сайта.

Что означают цифры 644 и 755

Система прав доступа пришла из Unix-подобных операционных систем, на которых работает огромное количество веб-серверов. Чтобы понять числовую запись, достаточно разобраться всего с тремя действиями.

  • Чтение обозначается буквой r и имеет значение 4.
  • Запись обозначается буквой w и имеет значение 2.
  • Выполнение обозначается буквой x и имеет значение 1.

Эти значения складываются.

Если разрешено только чтение, получается 4.

Чтение и запись дают 6, потому что 4 + 2 = 6.

Чтение и выполнение дают 5, потому что 4 + 1 = 5.

Все три разрешения вместе дают 7:

4 + 2 + 1 = 7

Но почему тогда в файловом менеджере три цифры?

Потому что права задаются отдельно для трех категорий пользователей. Первая цифра относится к владельцу файла, вторая к группе, третья ко всем остальным.

Возьмем обычное значение:

644

Первая цифра 6 означает, что владелец может читать и изменять файл.

Вторая цифра 4 разрешает участникам группы только чтение.

Последняя 4 означает только чтение для остальных.

В буквенном виде это выглядит примерно так:

rw-r--r--

Теперь рассмотрим:

755

Владелец получает 7, то есть чтение, запись и выполнение. Группа получает 5, то есть чтение и выполнение. Остальные получают такие же права.

Получается:

rwxr-xr-x

Именно поэтому в инструкциях для обычного сайта часто встречается пара 644 и 755.

Для большинства обычных файлов сайта право выполнения не требуется. Веб-серверу достаточно иметь возможность прочитать HTML, CSS, изображение или передать PHP-файл соответствующему обработчику.

С каталогами ситуация другая.

Право выполнения для каталога не означает запустить папку как программу. В контексте каталога оно связано с возможностью проходить через него и обращаться к находящимся внутри объектам.

Из-за этого каталог с неправильно установленными правами способен сделать недоступными файлы, которые сами по себе имеют совершенно нормальные разрешения.

Например, изображение может иметь права 644, но если веб-сервер не может пройти через один из каталогов в пути к нему, посетитель его не получит.

Поэтому нельзя рассматривать права отдельного файла в отрыве от всей структуры каталогов.

Есть и другие комбинации.

600 разрешает владельцу читать и изменять файл, а всем остальным не дает никаких прав.

400 оставляет владельцу только чтение.

700 дает все три разрешения исключительно владельцу.

777 разрешает чтение, запись и выполнение владельцу, группе и всем остальным.

Последнее значение и стало причиной множества плохих советов в интернете.

Почему 777 не нужно ставить чтобы сайт заработал

Представим ситуацию. После переноса на новый хостинг сайт перестал загружать фотографии. В интернете находится совет изменить права проблемной папки на 777.

Владелец меняет значение, загрузка действительно начинает работать.

Кажется, проблема решена.

На самом деле мы выяснили только одно: процессу, который пытается записать файл, раньше не хватало доступа. Вместо поиска причины ему выдали максимально широкие разрешения.

Это примерно как решить проблему с потерянным ключом от служебной комнаты, сняв с нее дверь.

Работать станет удобнее, но это не означает, что решение хорошее.

WordPress в собственной документации отдельно предупреждает об опасности 777. Для типичной конфигурации виртуального хостинга документация приводит каталоги 755 или 750 и файлы 644 или 640, хотя конкретная схема зависит от устройства сервера.

Это последнее уточнение очень важно.

Нельзя сказать, что любой файл любого сайта на любом сервере обязан иметь 644.

На разных хостингах PHP может выполняться от разных пользователей. Отличаются настройки веб-сервера, групп, владельцев и способы изоляции аккаунтов. Отдельные приложения могут требовать возможность записи в определенные каталоги.

Некоторые конфигурационные файлы, содержащие чувствительные данные, имеет смысл защищать строже, если серверное окружение это позволяет.

Поэтому 644 для файлов и 755 для каталогов лучше воспринимать как очень распространенную отправную точку, а не как универсальный стандарт, который нужно рекурсивно применять ко всему серверу при любой непонятной ошибке.

Особенно осторожно следует относиться к командам, которые массово изменяют права.

Если вы видите инструкцию вроде:

chmod -R 777 /путь/к/сайту

и не понимаете точно, зачем она нужна, выполнять ее не стоит.

Параметр рекурсивного изменения означает, что новые права будут применяться ко множеству объектов внутри указанного каталога. Ошибка в пути или неправильно выбранное значение может затронуть весь сайт.

Более аккуратный подход состоит в разделении файлов и каталогов.

Например, для типичной структуры WordPress официальная документация показывает отдельное назначение 755 каталогам и 644 файлам. Это принципиально отличается от установки одного значения всему дереву.

Но даже правильные на первый взгляд 644 и 755 не всегда исправляют проблему.

Причина может находиться вообще не в chmod.

Почему правильные права иногда не помогают

У файла есть не только числовые разрешения. У него также есть владелец и группа.

Это особенно важно после переноса сайта, распаковки архива от другого пользователя или выполнения команд на VPS с повышенными привилегиями.

Представим, что каталог имеет права 755. На первый взгляд все нормально.

Но приложение должно записывать в него новые файлы, а процесс PHP работает от пользователя, который не является владельцем и не имеет права записи.

В результате CMS сообщает, что каталог недоступен для записи.

Можно поставить 777 и временно скрыть проблему. А можно разобраться, кому принадлежат файлы и от какого пользователя выполняется PHP.

Вторая стратегия обычно правильнее.

На собственном VPS владелец и группа отображаются командой:

ls -l

Для изменения владельца существует команда chown, но применять ее нужно только понимая устройство конкретного сервера.

На обычном виртуальном хостинге ситуация проще. Провайдер уже настроил пользователей, веб-сервер и PHP. Если файлы загружены через штатный файловый менеджер или ваш FTP-аккаунт, они обычно получают подходящего владельца автоматически.

Проблемы чаще появляются после ручного переноса, распаковки необычным способом или действий через SSH.

Если сайт находится на виртуальном хостинге и права выглядят нормально, а CMS все равно не может записывать файлы, разумнее обратиться в поддержку, чем последовательно пробовать 775, 777 и другие комбинации.

Администратор хостинга видит серверную конфигурацию и сможет определить, от какого пользователя работает процесс и кому принадлежит проблемный каталог.

Права доступа также не следует считать универсальным объяснением ошибки 403.

Да, сервер действительно может вернуть запрет доступа из-за файловых разрешений. Но у 403 есть и другие причины: правила веб-сервера, настройки .htaccess, защитные модули, ограничения по IP, конфигурация сайта.

Если одна страница внезапно начала выдавать 403, не нужно сразу менять права всему сайту.

Сначала полезно понять масштаб проблемы.

Открывается ли главная? Работают ли другие файлы из этого каталога? Возникла ли ошибка после переноса или изменения настроек? Какое сообщение появилось в журнале веб-сервера?

Похожая логика применяется, если WordPress не устанавливает плагин или не загружает изображение.

Проблема действительно может быть связана с невозможностью записи. Но причиной бывают и лимит диска, превышение количества файлов, настройки PHP, ограничения размера загрузки, ошибки приложения и другие факторы.

Чем меньше действий сделано наугад, тем проще найти настоящую причину.

Как проверить и изменить права доступа на хостинге

Самый простой способ для новичка это файловый менеджер панели управления.

Откройте каталог сайта, выберите нужный файл или папку и найдите пункт, связанный с правами доступа. Он может называться Права, Permissions, Атрибуты или Chmod.

Интерфейс зависит от панели. Где-то вводится числовое значение, например 644. В другом файловом менеджере отображаются отдельные флажки чтения, записи и выполнения для владельца, группы и остальных пользователей.

Не меняйте значение только потому, что оно отличается от найденного в статье в интернете.

Сначала зафиксируйте исходные права. Если изменение не поможет или приведет к новой ошибке, вы сможете вернуть прежнее состояние.

Права можно менять и через FTP или SFTP, если используемый клиент поддерживает такую функцию. Обычно достаточно открыть свойства файла или каталога.

На VPS с SSH применяется команда chmod.

Например:

chmod 644 index.php

назначит указанные права файлу index.php.

Для каталога команда может выглядеть так:

chmod 755 public_html

Если нужно привести к типичным значениям большую структуру сайта, файлы и каталоги обрабатывают отдельно. Для WordPress в официальной документации приведен такой принцип:

find /path/to/site/ -type d -exec chmod 755 {} \;

find /path/to/site/ -type f -exec chmod 644 {} \;

Первая команда находит каталоги, вторая файлы.

Копировать эти команды на свой сервер без изменения пути нельзя. Ошибка в пути при массовой операции способна затронуть не тот каталог.

Кроме того, конкретному сайту могут требоваться исключения.

Перед массовым изменением прав желательно иметь резервную копию и понимать, почему операция вообще понадобилась.

Особенно внимательно стоит проверять права после переноса сайта на другой сервер.

Файлы могли сохранить атрибуты старой системы, получить другого владельца при копировании или распаковке либо оказаться в окружении, которое устроено иначе. Именно поэтому нормальная проверка миграции включает не только открытие главной страницы.

Нужно убедиться, что работает административная панель, загружаются изображения, создаются кеш и временные файлы, устанавливаются обновления и выполняются другие операции, требующие записи.

Если все работает, менять права ради красивых цифр в файловом менеджере не нужно.

Это особенно важное правило для новичка.

Права доступа являются частью безопасности и устройства сервера, а не настройкой производительности. Значение 600 не делает сайт быстрее, 755 не улучшает SEO, а 777 не является универсальным режимом совместимости.

Если запомнить только основное, схема выглядит достаточно просто.

Число 4 означает чтение, 2 запись, 1 выполнение. Их комбинация формирует права владельца, группы и остальных пользователей. Поэтому 644 обычно позволяет владельцу читать и изменять файл, а остальным только читать его. Значение 755 дает владельцу полный набор базовых прав, а группе и остальным чтение и выполнение.

Для обычных сайтов 644 для файлов и 755 для каталогов встречаются очень часто, но правильные значения всегда зависят от серверной конфигурации и требований приложения.

Если сайт перестал работать после переноса или обновления, права действительно стоит проверить. Но не нужно начинать диагностику с массовой установки 777.

Сначала посмотрите текущие разрешения, выясните владельца файлов, определите, как именно проявляется ошибка, и только затем меняйте то, что действительно мешает работе сайта.

Так права доступа перестают выглядеть набором загадочных цифр и становятся обычным инструментом, который помогает серверу разделять разрешенные и запрещенные действия.

Оцените статью
Рейтинг хостингов
Добавить комментарий