12. Команда sudo и управление привилегиями в Linux
Введение
В операционных системах Linux действует строгая модель безопасности: обычные пользователи имеют ограниченные права, а действия, влияющие на систему, доступны только администратору (root).
Для безопасного выполнения административных команд используется специальный механизм — sudo.
sudo позволяет временно выполнить команду от имени администратора без необходимости входить под root. Это защищает систему и снижает риск ошибок.
Что такое sudo
sudo (SuperUser DO) — это программа, позволяющая запускать отдельные команды с повышенными привилегиями.
Пример:
sudo apt update
Эта команда выполняется так, как будто её запускает root, но пароль вводит обычный пользователь.
Зачем нужен sudo?
- Не нужно заходить под root (это небезопасно).
- Каждое действие записывается в журнал.
- Можно ограничить, кому и какие команды разрешены.
- Уменьшается риск случайно «сломать» систему.
Как работает sudo
Механизм очень простой:
- Пользователь вводит команду с
sudo. - Система запрашивает пароль пользователя (не root!).
- Проверяется файл настроек
/etc/sudoers. - Если доступ разрешён — команда выполняется от имени суперпользователя.
- Событие записывается в журнал.
Важно: пользователь не получает «все привилегии навсегда» — только на время выполнения одной команды.
Добавление пользователя в группу sudo
Чтобы пользователь мог работать с sudo, его нужно добавить в соответствующую группу.
В Debian/Ubuntu это группа sudo:
sudo usermod -aG sudo student
В некоторых системах (CentOS, Fedora) — группа wheel:
sudo usermod -aG wheel student
После добавления требуется перелогиниться.
Настройки sudo: файл /etc/sudoers
Все правила доступа определяются в файле:
/etc/sudoers
Редактировать его можно только через команду:
sudo visudo
она проверяет синтаксис и защищает от ошибок.
Пример записи:
student ALL=(ALL) ALL
Означает: пользователь student может выполнять любые команды от имени любого пользователя.
Полезные команды sudo
Выполнить команду как root:
sudo командa
Выполнить команду от имени другого пользователя:
sudo -u пользователь команда
Пример:
sudo -u www-data ls /var/www
Показать, что разрешено пользователю:
sudo -l
Перезапросить пароль:
sudo -k
Выполнить несколько команд подряд в одной сессии:
sudo -s
(аккуратно, это почти как временный root)
Журналы sudo
Все попытки использования sudo логируются — это важно для информационной безопасности.
Просмотр журналов:
journalctl _COMM=sudo
или
journalctl -u sudo
Можно увидеть:
- кто выполнял команду;
- когда;
- была ли попытка выполнить запрещённую команду.
Пример строки лога:
student : TTY=pts/0 ; COMMAND=/usr/bin/apt update
Основные риски и правила безопасности
Никогда не выполняем:
sudo su(вход в полноценную root-сессию)sudo bashилиsudo sh(даёт shell с правами root)
Почему?
- легко случайно удалить системный файл;
- все действия перестают логироваться;
- вредоносная программа может получить суперправа.
Правильный подход:
Использовать sudo только для конкретной команды.
Итоги
sudo— это механизм безопасного выполнения административных команд.- Позволяет выполнять чувствительные операции без входа под root.
- Все действия записываются в журнал, что важно для ИБ.
- Правильное использование sudo снижает риски атак и ошибок.
Это одна из ключевых тем для специалистов по информационной безопасности.