Права доступа к файлам на сервере: почему пропадают картинки и не сохраняются настройки

Сайт перенесли на новый сервер — и половина картинок пропала. Менеджер загружает фотографию товара, а она не сохраняется, хотя никакой ошибки не появляется. Настройки в админке меняются, но после перезагрузки страницы возвращаются старые. Файл с прайсом загрузился, но по ссылке выдаётся ошибка доступа. Все эти разные на вид неприятности чаще всего имеют одну общую причину — неправильные права доступа к файлам и папкам на сервере. Тема выглядит сугубо технической, но её последствия совершенно коммерческие: сайт с пропавшими картинками и неработающими формами не приносит обращений. Разберём, как это устроено, почему ломается и что делать владельцу сайта.
Что такое права доступа и зачем они нужны
На сервере, где живёт сайт, работает не один участник, а несколько: сама операционная система, программа веб-сервера, которая отдаёт страницы посетителям, программа, выполняющая код сайта, и учётная запись, под которой вы подключаетесь по файловому протоколу.
Каждый файл и каждая папка имеют владельца и набор разрешений: кому можно читать, кому писать, кому выполнять. Это нужно по двум причинам. Первая — безопасность: если любой процесс может писать куда угодно, взлом одного компонента открывает доступ ко всему. Вторая — порядок: разные части системы не мешают друг другу.
Для сайта это означает простую вещь. Есть папки, куда сайт обязан уметь записывать: загрузки картинок и документов, кэш, временные файлы, файлы настроек, которые меняются из админки, резервные копии. И есть всё остальное, куда записывать не нужно и опасно: исполняемый код, шаблоны, системные файлы.
Когда разрешения выставлены неправильно, возможны две противоположные беды. Слишком мало прав — сайт не может сохранить то, что должен, и это вы видите как пропавшие файлы и несохраняющиеся настройки. Слишком много прав — сайт становится уязвим, потому что чужой код тоже может писать куда угодно.
Как выглядят симптомы
Проблема почти никогда не сообщает о себе прямо. Она маскируется под другие неисправности, и в этом её главная неприятность.
Загруженная картинка не появляется. Менеджер загружает фото, видит, что всё прошло, а на сайте пусто или значок сломанного изображения. Причина: файл не записался в папку загрузок либо записался, но веб-сервер не может его прочитать и отдать посетителю.
Картинки пропали после переноса. Файлы на месте, но открываются не все или ни одна. При копировании на новый сервер права не сохранились, и веб-сервер теперь не имеет доступа к ним.
Настройки не сохраняются. Вы меняете что-то в админке, получаете сообщение об успехе, а после перезагрузки видите старое значение. Настройки хранятся в файле, который сайт не может перезаписать.
Не создаются уменьшенные копии картинок. Оригинал загрузился, а превью в каталоге нет. Папке кэша изображений не хватает прав на запись.
Форма отправляется, но вложенный файл не приходит. Заявка приходит, а чертёж, который приложил клиент, теряется по дороге — временная папка недоступна для записи.
Не работает кэширование, сайт стал медленным. Система пытается сохранять готовые страницы, не может, и каждый раз собирает их заново.
Ошибка доступа при открытии страницы. Браузер показывает сообщение о запрете доступа. Чаще всего дело в правах на папку или на сам файл.
Обновление системы управления не устанавливается. Установщик не может записать новые файлы.
Объединяет все эти случаи одно: ошибка тихая. Сайт продолжает работать, посетители продолжают приходить, а часть функций просто не выполняется — и узнают об этом через недели.
Откуда берутся неправильные права
Причин немного, и все они бытовые.
Перенос на другой сервер. Самая частая. При копировании файлов архивом или по файловому протоколу владелец файлов меняется на того, под кем вы подключались, а веб-сервер работает под другой учётной записью и доступа не получает.
Загрузка файлов вручную. Разработчик закинул папку с картинками напрямую — у этих файлов права отличаются от тех, что создал сам сайт.
Восстановление из резервной копии. Та же история, что и с переносом: архив разворачивается с правами, которые были при создании, или с правами того, кто разворачивал.
Смена версии программного окружения на сервере. Обновилась программная платформа, изменилась учётная запись, под которой выполняется код, — и то, что было доступно, стало недоступным.
Попытка «починить» права наугад. Классика: не работает загрузка, кто-то ставит полный доступ всем на всю папку сайта. Загрузка начинает работать, а сайт становится беззащитным.
Работа нескольких человек с разными доступами. Один подключается по одному протоколу, другой — по другому, третий через панель управления. Файлы получаются с разными владельцами, и часть из них сайту недоступна.
Ограничения общего хостинга. На недорогих тарифах бывают жёсткие схемы, при которых некоторые привычные операции просто запрещены.
Как понять, что проблема именно в правах
Есть несколько проверок, которые отличают эту проблему от похожих.
Первая: сравните поведение старых и новых файлов. Если картинки, загруженные до переноса, не открываются, а новые загружаются и показываются нормально — почти наверняка дело в правах на старые файлы.
Вторая: посмотрите, есть ли файл физически. Если через файловый менеджер хостинга вы видите файл, а по адресу он не открывается — это не пропажа, а недоступность.
Третья: проверьте, одинаково ли ведут себя разные папки. Если картинки товаров не грузятся, а документы грузятся — проблема локальная, в одной папке.
Четвёртая: загляните в журнал ошибок сервера. Там прямым текстом пишется, что доступ к такому-то пути запрещён. Это самый быстрый способ подтвердить догадку.
Пятая: попробуйте загрузить файл через админку и посмотрите, появился ли он в папке. Если не появился и ошибки нет — запись не проходит молча.
Эти пять проверок занимают пятнадцать минут и позволяют не гадать.
Как это чинится правильно
Правильное решение — не «поставить всем всё», а выставить разные права для разных типов содержимого.
Общая логика такая. Папки, в которые сайт должен писать — загрузки, кэш, временные файлы, файлы изменяемых настроек, — получают права на запись для той учётной записи, под которой выполняется код сайта. Все остальные папки и файлы — только чтение и, где нужно, выполнение.
Владельцем файлов должна быть та учётная запись, под которой работает сайт. Это ключевой момент: если владелец правильный, достаточно обычных умеренных прав, и не нужно открывать доступ всем подряд.
Отдельно нужно запретить выполнение кода в папке загрузок. Это важная мера безопасности: если через форму кто-то сумеет загрузить исполняемый файл, он не должен получить возможность его запустить.
После любого переноса или восстановления из копии права выставляются заново, единообразно, по всему дереву файлов. Это стандартная операция, которую делает администратор за несколько минут, — и её нужно включить в чек-лист переноса, иначе про неё забывают.
На ХостСМС набор папок, требующих записи, известен и одинаков от проекта к проекту, поэтому выставление прав после переноса — процедура предсказуемая и быстрая. Главное — не пропустить её и не заменить универсальным «разрешить всё», как иногда делают в спешке.
Чем опасны избыточные права
Соблазн выставить полный доступ на всю папку сайта велик: всё сразу начинает работать. Но последствия проявляются позже и обходятся дорого.
Если веб-сервер может писать в любой файл сайта, то уязвимость в любом из компонентов позволяет подменить код. Злоумышленник дописывает несколько строк в файл, который отдаётся каждому посетителю, — и сайт начинает перенаправлять людей с телефонов на посторонние страницы или показывать чужую рекламу.
Симптомы у этого узнаваемые: владелец открывает сайт с компьютера и видит всё нормально, а клиенты с телефонов жалуются на переадресации. Или поисковая система присылает уведомление о заражении, а браузеры начинают предупреждать посетителей об опасности — и поток обращений обрывается.
Вторая опасность — загрузка посторонних файлов через формы. Если папка загрузок доступна на запись и в ней разрешено выполнение, любая уязвимость в обработке файлов превращается в полноценный доступ.
Поэтому правило простое: права даются минимально необходимые, а не максимально удобные. Работа по их правильной настройке занимает час, а последствия «быстрого решения» могут стоить недель восстановления и потери доверия.
Как это связано с продвижением 3 в 1
Наш подход «3 в 1» означает три источника обращений, работающих вместе. Проблемы с доступом к файлам бьют по всем трём одновременно и особенно неприятны тем, что происходят при полностью исправной, на первый взгляд, работе сайта.
Поиск и нейропоиск. Страницы с отсутствующими изображениями выглядят для посетителя сломанными, и он уходит. Хуже того, часть страниц может отдавать ошибку доступа — и тогда они постепенно выпадают из видимости. Отдельный сюжет: если из-за избыточных прав сайт оказался заражён, поисковая система может пометить его как опасный, и тогда обращения прекращаются полностью до устранения проблемы. Для генеративных ответов важна доступность страниц роботам: то, что отдаёт ошибку, в ответ не попадает.
Яндекс.Справочник. Человек перешёл из карточки в Яндекс Бизнесе, попал на страницу без фотографий — и вернулся к списку компаний. Переход из карточки стоит дорого, это уже выбравший вас посетитель. Отдельно стоит помнить, что фотографии в самой карточке загружаются в кабинете Яндекс Бизнеса и от сервера сайта не зависят, — поэтому при поломке на сайте карточка какое-то время продолжает работать и маскирует проблему.
2ГИС. Аудитория мобильная, и именно у мобильных посетителей чаще всего проявляются последствия заражения — посторонние переадресации обычно настраивают именно на телефоны. Владелец, проверяющий сайт с компьютера, ничего не видит, а обращения из 2ГИС тем временем падают.
Работа только над одной точкой даёт неполный результат. Можно идеально вести карточки и вкладываться в продвижение, но если картинки не открываются, а часть посетителей перенаправляется на чужие страницы, поток обращений обрывается на последнем шаге. Заявки с сайта и обращения с карт нужно считать вместе — тогда общий провал видно сразу.
Профилактика: что включить в регламент
Полностью исключить проблему нельзя, но можно сделать так, чтобы она обнаруживалась за минуты, а не за недели.
Чек-лист переноса. После любого переезда на новый сервер или восстановления из копии — обязательная проверка: открывается ли случайная картинка из каталога, загружается ли новый файл через админку, сохраняются ли настройки, создаются ли уменьшенные копии изображений.
Регулярная проверка загрузок. Раз в месяц загрузите тестовое изображение и документ через админку и убедитесь, что они видны на сайте.
Мониторинг ошибок. Настройте просмотр журнала ошибок сервера хотя бы раз в неделю. Проблемы с доступом видны там сразу.
Проверка с телефона. Раз в месяц откройте сайт с мобильного устройства, не из офисной сети. Это единственный способ заметить переадресации, настроенные только на мобильных.
Уведомления панели веб-мастера. Яндекс.Вебмастер сообщает о заражении и о недоступности страниц. Письма должны доходить до человека, который на них реагирует.
Резервные копии. Они должны включать не только базу и файлы, но и информацию о правах — иначе восстановление воспроизведёт проблему.
Ограниченный круг тех, кто загружает файлы напрямую. Чем меньше людей кладёт файлы мимо админки, тем меньше разнобоя.
Частые ошибки
Полный доступ на всю папку сайта как способ быстро починить загрузку. Работает сегодня, аукается через полгода.
Загрузка файлов напрямую в обход админки. Создаёт файлы с чужими правами, которые потом не открываются.
Перенос сайта без последующей установки прав. Самая распространённая причина пропавших картинок.
Игнорирование журналов ошибок. Там прямым текстом написано, что не так, а туда не смотрят.
Проверка сайта только с рабочего компьютера. Мобильные переадресации так не обнаруживаются никогда.
Резервные копии без проверки восстановления. Копия есть, а развернуть её без потерь не получается.
Разрешение выполнения кода в папке загрузок. Открытая дверь, о которой обычно не думают.
Молчаливое отношение к мелочам: «одна картинка не грузится, ничего страшного». Одна картинка — обычно первый признак того, что сломано у целой папки.
Что делать, если проблема уже есть
Сначала определите масштаб: не открывается одна картинка, одна папка или всё сразу. От этого зависит объём работ.
Посмотрите журнал ошибок — он обычно называет конкретный путь.
Проверьте, отличаются ли права и владелец у работающих и неработающих файлов. Это подтвердит диагноз.
Попросите администратора хостинга или своего специалиста выставить права единообразно по правильной схеме — с записью только там, где она нужна.
После исправления пройдите проверку: случайные картинки из разных разделов, загрузка нового файла, сохранение настроек, создание превью, отправка формы с вложением.
Если обнаружились следы заражения — переадресации, посторонние файлы, предупреждения браузера, — исправлением прав дело не ограничится: нужно чистить сайт, менять пароли и проверять, через что произошло проникновение.
Всё это обычно занимает от часа до дня в зависимости от масштаба, и в подавляющем большинстве случаев решается без потери содержимого сайта.
Если у вас пропадают картинки, не сохраняются настройки или клиенты жалуются на странное поведение сайта с телефонов, обратитесь к нам. Специалисты компании «Сайты Профессионально» проведут бесплатную диагностику, определят, связано ли это с правами доступа или с чем-то другим, и приведут настройки сервера в безопасное состояние — без избыточных разрешений, из-за которых сайты потом взламывают. Вы получите понятное объяснение, что именно было не так и как не допустить повторения.
Хотите получить бесплатную диагностику сайта?
Получите бесплатную экспресс-диагностику за 24 часа. Проверим ошибки, сбои, скорость, безопасность и скрытые ошибки — пришлём отчёт с рекомендациями.
- Скорость загрузки и мобильная версия
- Уязвимости, вирусы, взломы
- Битые ссылки, дубли, SEO-ошибки
- Статус домена, SSL, хостинга
Популярные решения наших клиентов:

До 10 часов работ в мес.
Ежедневная диагностика
Продление домена
Продление хостинга/сервера

До 40 часов работ в мес.

До 100 часов работ в мес.
