sudoers и visudo: точечный доступ вместо полного root
Хук
Однажды я зашёл в серверную, а там парень из техподдержки сидел под root. Он просто хотел перезапустить nginx. И сделал это.
Но root остался открыт. Вся сессия. Полный доступ ко всему.
Предыстория
Это был типичный стартап: все торопятся, контроль доступа — через одного админа. У каждого, кто хотя бы раз что-то делал на серверах, был пароль от root.
Когда я пришёл туда как внешний консультант, первым делом спросил: «А кто еще знает root?» Ответил главный инженер: «Ну, наверное, человек пять, может, семь…».
Проблема
С каждым новым сотрудником root-доступ расширялся. Никто не знал точного списка. Полный root — это право делать всё без ограничений: удалить лог, переписать конфиг, стереть базу.
Достаточно одной случайной команды — и сервис ляжет. А ответственность размазывается. «Я думал, это кто-то другой сделал».
Полный root — это не привилегия, а бомба замедленного действия.
Почему это важно
Любая ошибка с root-доступом — простой бизнеса. Пока вы ищете виновного, клиенты не получают услугу. Аудит действий становится невозможным — кто что менял под root, не видно.
Для компании это прямые убытки и потеря репутации. Я видел проекты, где после пары таких инцидентов инвесторы начали задавать неудобные вопросы.
Решение
Мы внедрили точечный доступ через sudoers. Вместо «можешь всё» — «можешь только restart nginx, reload php-fpm и посмотреть логи». Для редактирования sudoers используем visudo — он проверяет синтаксис, не даёт сломать файл.
Пример настройки для тимлида техподдержки:
- 🚀 Специфичные команды: /usr/bin/systemctl restart nginx, /usr/bin/systemctl reload php-fpm, /bin/journalctl
- 🛡 Запрет оболочки: не давать sudo -i или sudo /bin/bash
- 🔍 Логирование: все sudo-команды пишутся в auth.log с указанием пользователя
- 📋 Регулярный аудит: раз в месяц проверяем список sudoers и удаляем лишнее
Результат
Через две недели root больше никто не использовал в повседневной работе. Каждый мог сделать ровно то, что ему нужно, и не мог случайно навредить.
Количество инцидентов с серверами упало до нуля. А мне перестали звонить в три утра с вопросом «Сергей, а кто тут базу дропнул?».
📬 Свяжитесь с нами
Хотите внедрить это в своем бизнесе? Пишите нам!
- 📧 Email: [email protected]
- 🌐 Сайт: 1it.pro
- 📝 Блог: blog.1it.pro
- ✈️ Telegram Global (EN): Admin_global
- ✈️ Telegram (RU): Admin