Задать вопрос
@Arn984575

Нормальна ли практика деплоя от root и кто отвечает за разграничение прав на VPS?

Есть production-сервер на Ubuntu 16.

Я предлагаю стандартную модель:
создать отдельного пользователя deploy, настроить владельца проекта как deploy:www-data, разграничить права и выполнять деплой через rsync на край через git без использования root.

Системный администратор отказывается менять права и создавать отдельного пользователя, настаивает на работе от root. В случае ошибки ответственность, по его словам, не его. Руководство полностью доверяет администратору.
Дополнительный нюанс: runtime-директории (storage и др.) находятся внутри проекта и не вынесены отдельно.

При деплое через rsync --delete, если по ошибке не подхватится переменная или будет указан неверный путь, теоретически можно затереть runtime-данные. Если эти директории принадлежат www-data:www-data, пользователь deploy просто не сможет их переписать — что служит дополнительной защитой. При работе от root такой защиты нет.

Также понятно, что вероятность ошибки невысока, но риск при работе от root существенно выше: при неверном пути можно повредить данные проекта или затронуть системные каталоги.

Я сам могу все настроить но это не моя зона ответственности.

Вопросы:

Является ли деплой от root нормальной практикой в production?

Входит ли в обязанности системного администратора настройка пользователей, групп, прав доступа и SSH-ключей (а не только сети и firewall)?

Лучше сразу уйти с такой работы?
  • Вопрос задан
  • 297 просмотров
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Системный администратор
    11 месяцев
    Далее
  • Академия Eduson
    DevOps-инженер
    7 месяцев
    Далее
  • Skillbox
    Системный администратор с нуля
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 5
@Refguser
Решения для бизнеса: корп.сайты, ИМ, боты и пр.
Твои вопросы показывают отсутствие опыта и необходимых знаний. Но не переживай, это наживное :)
Для начала - все рабочие процессы сотрудников должны быть регламентированы должностной инструкцией. Тогда вопрос кто что должен и за что отвечает сразу отпадает.
Если на предприятии нет ДО и всё держится на честном слове (ака "доверии") - это рано или поздно приводит к проблемам.

Потом - чтобы попытаться добиться от руководства того, что по твоему мнению важно (и указать на недостатки существующей системы) бывает недостаточно просто рассказать устно. Особенно когда есть противодействующая сторона. Тогда составляется служебная записка где отражаются недостатки (с упором на финансовые и другие потери и риски) и предлагается решение, с обязательным хорошо и понятно прописанным профитом от внедрения. СЗ вначале подаётся непосредственному руководству. Если результат нет - постепенно выше.
Ответ написан
Комментировать
@Drno
Да делайте как удобно. у меня на одном сервере так, на другом эдак, на третьм заказчик потребовал вообще по "сяк" сделать...

каждый работает как считает нужным.

про зоны ответственности - кто за VPS отвечает, тот и решает как делать.

ну и не забываем про бэкапы, эт к вопросу затирания.

насчет rsync - я пока не встречал такого, чтоб он не подхватил переменные...

насчёт деплоя - делай в новую папку... чтоб пред оставалась. тогда и проблемы нет если ошибка в деплое
Ответ написан
anthtml
@anthtml
Системный администратор программист радиолюбитель
А там только СА? ИБшников нету или в одном лице?
Попробуйте, то что описали довести до руководства, в том числе и письменно.
Так-то по хорошему, на проде рута вообще быть не должно, точнее на неко должен стоять жесткий хэш пароль с обязательным оповещением о входе. Т.к. вход под рутом на прод это жесткий инцидент в ИБ - разрабов можно отрулить правами как вы и описали.
Ответ написан
CityCat4
@CityCat4
Жил да был черный кот за углом...
Является ли деплой от root нормальной практикой в production?


Столкнулся я недавно с похожей ситуацией. Пришлось целый скрипт написать по деплою.

Установка программ - это исключительно прерогатива админа. Разраб на боевом сервере должен иметь права (если он там вообще есть) обычного юзера.

За работу сервера отвечает админ

То есть, если сервер ляжет (тем более 16 бубунта, вышедшая 10 лет назад (десять, Карл!)) - кто будет отвечать? Правильно, админ. Поэтому и не должно быть никаких деплоев не от рута.

Здесь надо сказать, что практика деплоя самим разрабом (даже в ограниченных условиях) - это вообще неправильно. Разраб должен отладить проект у себя, потом подготовить дистриб и доки, по которым админ установит сам.

Даже допуск разраба к деплою - это уже серьезное послабление. У меня сделано как - есть некий скрипт, который запускается через sudo. Этот скрипт сам заберет последнюю версию приложения с гита, сам распакует, сам расставит все по местам. По идее это все нужно было в portage оформить, но времени нет, свое налабать проще...

Если есть замечания по безопасности - стоит сначала написать об этом непосредственно ответственному, то есть админу. Если он ничего не говорит или тупо без обьяснений отказывает - идти к руководству отдела. Не нужно влезать в конфликт непосредственно - вполне может так случиться, что "там" договорятся, а Вас обьявят стрелочником :)

Не Ваша зона ответственности -- не отвечайте. Игры ы "теневого админа", "теневого директора" (а вот я бы на месте ... сделал... ) ни к чему не приводят.

Админ отвечает за работу сервера. Полностью. Если что-то ложится, то винова в первую очередь он, именно потому что только у него права что-то менять на сервере.
Ответ написан
Комментировать
ky0
@ky0 Куратор тега Системное администрирование
Миллиардер, филантроп, патологический лгун
Какой ещё деплой через rsync и 16-ая Убунта в 2026 году?

Собираете образ docker-контейнера и запускаете. От кого он там будет запускаться - не ваша проблема.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы