Перейти к содержанию

12. Команда sudo и управление привилегиями в Linux

Введение

В операционных системах Linux действует строгая модель безопасности: обычные пользователи имеют ограниченные права, а действия, влияющие на систему, доступны только администратору (root).

Для безопасного выполнения административных команд используется специальный механизм — sudo.

sudo позволяет временно выполнить команду от имени администратора без необходимости входить под root. Это защищает систему и снижает риск ошибок.


Что такое sudo

sudo (SuperUser DO) — это программа, позволяющая запускать отдельные команды с повышенными привилегиями.

Пример:

sudo apt update

Эта команда выполняется так, как будто её запускает root, но пароль вводит обычный пользователь.

Зачем нужен sudo?

  • Не нужно заходить под root (это небезопасно).
  • Каждое действие записывается в журнал.
  • Можно ограничить, кому и какие команды разрешены.
  • Уменьшается риск случайно «сломать» систему.

Как работает sudo

Механизм очень простой:

  1. Пользователь вводит команду с sudo.
  2. Система запрашивает пароль пользователя (не root!).
  3. Проверяется файл настроек /etc/sudoers.
  4. Если доступ разрешён — команда выполняется от имени суперпользователя.
  5. Событие записывается в журнал.

Важно: пользователь не получает «все привилегии навсегда» — только на время выполнения одной команды.


Добавление пользователя в группу 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 снижает риски атак и ошибок.

Это одна из ключевых тем для специалистов по информационной безопасности.