«Я не знала, как дать доступ фрилансеру и не бояться за сайт: рассказываю, как настроила FTP и ограниченные доступы на Timeweb и спокойно делегировала задачи»
У меня был сайт интернет‑магазина текстиля: WordPress + WooCommerce, около 300 товаров, подключена CRM, настроены интеграции с маркетплейсами. Клиент сказал: «Нужно обновить карточки товаров: добавить новые фото, поправить описания, обновить характеристики. Возьми фрилансера, я не хочу, чтобы ты этим занималась». Я обрадовалась: наконец‑то можно делегировать рутину. Но тут же накатила паника: «А если он удалит папку с загрузками? Или сломает базу? Или сольёт доступы кому‑нибудь?»
До этого я всем управляла сама и никому не давала доступ к хостингу. А тут нужно было доверить часть сайта постороннему человеку — и при этом гарантировать, что ничего не сломается. Я не хотела отдавать полный доступ к панели хостинга, но и не хотела делать всё сама. Нужно было найти золотую середину.
Чего я боялась больше всего
Перед тем как создавать доступы, я честно выписала свои главные страхи:
- Фрилансер удалит важные файлы. Например, папку
/uploads/с картинками товаров или конфиги CMS. - Он сломает базу данных. Сделает неправильный SQL‑запрос, и товары или заказы пропадут.
- Сольёт доступы. Перешлёт логин/пароль кому‑то ещё, и сайт окажется под угрозой.
- Изменит настройки сервера. Поменяет PHP‑версию, лимиты памяти или что‑то в
.htaccess, и сайт начнёт работать нестабильно. - Не смогу быстро всё откатить. Если что‑то пойдёт не так, я не успею восстановить данные до того, как упадут продажи.
С этим списком я пошла в панель Timeweb — и поняла, что там есть инструменты, чтобы делегировать безопасно.
Шаг 1: сделать бэкап перед любыми действиями
Первое, что я сделала, — ручной бэкап в панели Timeweb. Нажала одну кнопку, подождала пару минут, убедилась, что статус «Готов». Если фрилансер что‑то сломает, я смогу откатиться за 5 минут. Это сразу сняло половину стресса.
Шаг 2: создать отдельный FTP‑аккаунт с ограниченными правами
В панели Timeweb я зашла в раздел «FTP‑пользователи» и нажала «Создать». Там можно было указать:
- Логин и пароль.
- Папку, к которой у пользователя будет доступ.
- Права: чтение, запись, удаление.
Я сделала так:
- Папка: указала
/public_html/wp-content/uploads/new-photos/— только для новых фото. - Дополнительно: создала отдельную папку
/public_html/temp-for-freelance/для временных файлов, если ему нужно будет что‑то загрузить. - Права: дала «чтение и запись», но не давала право удалять корневые папки.
- Пароль: сложный, сгенерированный панелью.
Важно: я не давала доступ к /public_html/.env, /public_html/wp-config.php, /public_html/.htaccess — эти файлы критичны для работы сайта.
Фрилансеру этого было достаточно, чтобы загружать фото и работать с файлами, но недостаточно, чтобы сломать CMS или настройки сервера.
Шаг 3: если нужен доступ к базе — только через безопасные методы
Клиент хотел, чтобы фрилансер ещё и поправил описания товаров прямо в базе (массово, через SQL). Я не хотела давать прямой доступ к phpMyAdmin с полными правами. Решила так:
- Вариант 1 (безопасный): фрилансер пишет SQL‑запросы, я сначала проверяю их в тестовой базе (на тестовом поддомене), и только потом запускаю на основном сайте.
- Вариант 2 (ещё безопаснее): делаю бэкап, даю временный доступ к phpMyAdmin, но только на 24 часа. После этого меняю пароль или отзываю доступ.
В этот раз я выбрала Вариант 1: фрилансер прислал мне запрос, я протестировала его на копии, убедилась, что он обновляет только нужные поля и не удаляет ничего лишнего, и сама запустила его в панели Timeweb (в разделе «Базы данных» есть phpMyAdmin).
Шаг 4: дать инструкции и зафиксировать зоны ответственности
Чтобы не было недопониманий, я отправила фрилансеру чёткое ТЗ:
- Куда загружать файлы (конкретные папки).
- Какие файлы не трогать (конфиги, темы, плагины).
- Как называть файлы (правила именования, чтобы не было дублей).
- Что делать, если что‑то не работает (писать мне, не пытаться чинить самому).
Плюс я сразу сказала: «Если ты видишь, что сайт ведёт себя странно — остановись и напиши. Не пытайся “починить” через правки конфигов».
Шаг 5: контроль и финальная проверка
Когда фрилансер закончил, я сделала три вещи:
- Проверила целостность файлов. В панели Timeweb есть простой способ сравнить папки или просто посмотреть, не пропали ли важные директории.
- Проверила базу данных. Открыла несколько товаров, убедилась, что описания и цены корректны, нет пустых полей.
- Протестировала ключевые сценарии. Добавила товар в корзину, оформила тестовый заказ, проверила, что CRM получает данные.
Всё было в порядке. Ни один важный файл не удалён, база цела, сайт работает как раньше.
Шаг 6: отозвать доступ и обновить пароли
Сразу после завершения работ я:
- Удалила FTP‑аккаунт фрилансера.
- Сменила пароль от основного FTP‑пользователя (на всякий случай).
- Проверила логи в панели: посмотрела, какие файлы загружались и когда. Это дало уверенность, что не было странных действий.
Теперь, если понадобится снова делегировать задачу, я просто создам новый ограниченный аккаунт.
Где я чуть не ошиблась (и что панель подсказала)
- Хотела дать FTP‑доступ ко всей папке
/public_html/. Думала: «Так ему будет удобнее». Панель и здравый смысл подсказали: лучше ограничить доступ только нужными папками. - Собиралась дать прямой доступ к phpMyAdmin. Хорошо, что сначала подумала: один неверный DELETE или DROP — и всё пропало. Безопаснее проверять SQL‑запросы на тестовой копии.
- Не хотела делать бэкап. «Ну, вроде ничего сложного». Но даже простая загрузка файлов может что‑то перезаписать. Бэкап на Timeweb делается в один клик — это лучшая страховка.
- Не давала чётких инструкций. В первый раз фрилансер начал править файлы темы, потому что «так быстрее». Теперь я всегда фиксирую, что можно трогать, а что — нет.
Что реально помогло на Timeweb
- Ограниченные FTP‑аккаунты. Можно давать доступ только к конкретным папкам и с конкретными правами.
- Бэкапы в один клик. Если что‑то пошло не так, откатиться можно за минуты.
- Файловый менеджер. Я быстро проверяла, какие файлы были загружены, и не нужно было ставить FTP‑клиент.
- Доступ к phpMyAdmin прямо из панели. Удобно запускать SQL‑запросы и тестировать их без сторонних инструментов.
- Логи и история действий. В панели видно, кто и когда заходил, какие файлы менял — это даёт дополнительный контроль.
- Поддержка. Когда я сомневалась, можно ли ограничить FTP‑права так, чтобы нельзя было удалять корневые папки, в чате быстро подсказали, как это настроить.
Практические советы, чтобы безопасно делегировать задачи
Если вам тоже нужно дать доступ подрядчику, вот что реально работает:
- Никогда не отдавайте полный доступ к панели хостинга. Это как отдать ключи от офиса.
- Используйте отдельные FTP‑аккаунты с ограниченным доступом. Только нужные папки, только нужные права.
- Делайте бэкап перед любой передачей доступа. На Timeweb это пара кликов, а откатиться можно за минуты.
- Если нужен доступ к базе — проверяйте SQL‑запросы сначала на тестовой версии. Или делайте это сами после проверки.
- Фиксируйте зоны ответственности. Чётко пропишите, что можно делать, а что нельзя.
- Ограничивайте срок доступа. Если можно — давайте временный доступ, потом отзывайте.
- После завершения работ отзывайте доступы и меняйте пароли. Не оставляйте «запасные входы».
- Проверяйте логи. Посмотрите, какие файлы менялись и кем — это простой способ убедиться, что всё чисто.
Сейчас я спокойно делегирую задачи: знаю, что даже если что‑то пойдёт не так, у меня есть бэкап и ограниченные права, а панель Timeweb позволяет всё быстро исправить. Делегирование перестало быть риском — оно стало нормальным рабочим инструментом, который экономит время и не ставит проект под угрозу.
- Как оформить дебетовую карту ОТП Банка в Ставрополе: условия, доставка, адреса отделений
- «Я думала, что “настроить редиректы и миграцию на новый домен” — это просто прописать 301‑редирект в htaccess и нажать “сохранить”, а потом получила смешанные URL в выдаче, формы, которые отправляли заявки на старый домен, и CRM, где половина лидов терялась: рассказываю, как перенесла сайт на новый домен без потери трафика, лидов и позиций»
- «Я думала, что “ускорить сайт через минификацию и объединение файлов” — это просто включить пару галочек в плагине, а потом получила белый экран, сломанные скрипты и формы, которые перестали отправлять заявки: рассказываю, как оптимизировала JS/CSS без потери функциональности и конверсий»
- «Я думала, что “настроить автоворонку с письмами и сегментацией” — это просто подключить плагин рассылок, а потом получила 300 подписчиков, которые видели не те письма, и CRM, где всё перемешалось по статусам: рассказываю, как собрала автоворонку без потери лидов и путаницы в сегментах»
- «Я думала, что “настроить A/B‑тест форм” — это просто сделать две версии и включить статистику, а потом получила заявки, которые невозможно было сопоставить с вариантом теста, и CRM, где всё смешалось: рассказываю, как сделала корректный A/B‑тест без потери лидов и искажений аналитики»