Как настраивать файл /etc/sudoers
Утилита sudo — один из ключевых инструментов администрирования в Linux. Она позволяет выполнять команды с повышенными привилегиями, не входя напрямую под пользователем root. Благодаря этому система остаётся более безопасной: обычные пользователи могут выполнять необходимые административные действия, но только в пределах разрешённых правил.
Основные параметры, которые управляют поведением sudo, находятся в файле /etc/sudoers. Именно здесь описывается, какие пользователи и группы имеют право запускать команды от имени других пользователей и при каких условиях это разрешено.
Почему для редактирования используют visudo
Для изменения настроек sudo предусмотрена специальная команда:
visudo
Она открывает файл /etc/sudoers в редакторе, но перед сохранением проверяет синтаксис. Если в конфигурации обнаружится ошибка, visudo не позволит сохранить изменения, пока проблема не будет исправлена. Такая проверка защищает систему от случайной поломки правил доступа.
Обычно visudo запускает редактор vi, однако в некоторых дистрибутивах используется другой вариант. Например, в Ubuntu файл часто открывается через nano. При желании редактор можно поменять.
В Ubuntu это делается так:
sudo update-alternatives --config editor
После запуска команда предложит список доступных редакторов. Достаточно выбрать нужный номер или нажать Enter, чтобы оставить текущий вариант.
Что содержится в файле /etc/sudoers
Теперь посмотрим на несколько типичных параметров, которые можно встретить в конфигурации sudo.
Сброс переменных окружения
Строка
Defaults env_reset
отвечает за очистку переменных среды при запуске sudo. Когда пользователь выполняет команду с повышенными правами, система сбрасывает большинство переменных окружения. Это уменьшает риск того, что пользовательские настройки повлияют на выполнение привилегированной команды.
Безопасный путь для запуска программ
Другой параметр выглядит так:
Defaults secure_path=...
Он задаёт список каталогов, из которых sudo может запускать программы. Это своего рода защитная мера: система игнорирует пути из пользовательского окружения и использует только заранее определённый набор директорий.
Правила для пользователя root
В файле можно увидеть строку:
root ALL=(ALL:ALL) ALL
Эта запись определяет права пользователя root. Она состоит из нескольких частей:
- первое ALL означает, что правило действует на всех хостах;
- второе ALL говорит, что root может выполнять команды от имени любого пользователя;
- третье ALL позволяет запускать команды от имени любой группы;
- последнее ALL означает отсутствие ограничений по командам.
Фактически эта запись подтверждает полный доступ root ко всем операциям.
Правила для групп пользователей
Похожие записи могут использоваться и для групп. Например:
%sudo ALL=(ALL:ALL) ALL
Символ % перед именем указывает, что речь идёт о группе, а не о конкретном пользователе. В данном случае всем участникам группы sudo разрешено выполнять любые команды с использованием sudo.
Директория /etc/sudoers.d
В конфигурации sudo можно встретить строку:
#includedir /etc/sudoers.d
Хотя она начинается с символа #, это не комментарий. Параметр includedir сообщает системе, что правила из каталога /etc/sudoers.d также нужно учитывать.
Такой подход удобен, когда требуется добавлять отдельные настройки для пользователей или сервисов, не изменяя основной файл /etc/sudoers.
Редактировать такие файлы тоже следует через visudo. Например:
sudo visudo -f /etc/sudoers.d/mysettingsfile
Команда откроет указанный файл и выполнит проверку синтаксиса при сохранении.
Использование псевдонимов
Когда в системе много пользователей и правил доступа, конфигурация может быстро стать громоздкой. Чтобы упростить её структуру, в sudoers можно использовать псевдонимы.
Например, можно объединить пользователей в логические группы:
User_Alias GROUPA = user1, user2, user3
User_Alias GROUPB = user4, user5, user3
User_Alias GROUPC = user1, user4, user5
Названия таких групп принято писать с заглавной буквы.
После этого можно назначать права сразу для всей группы. Например, разрешить участникам GROUPA обновлять список пакетов:
GROUPA ALL = /usr/bin/apt update
Псевдонимы для команд
Точно так же можно создавать псевдонимы для самих команд. Это удобно, если несколько пользователей должны выполнять одинаковые операции.
Например, создадим набор команд для перезагрузки системы:
Cmnd_Alias RSTRT = /sbin/restart, /sbin/reboot
Теперь можно разрешить группе пользователей выполнять эти команды:
GROUPC ALL = RSTRT
Выполнение команд без ввода пароля
Иногда пользователям нужно разрешить запуск конкретной команды через sudo без ввода пароля. Для этого применяется параметр NOPASSWD.
Пример правила:
GROUPB ALL = NOPASSWD: /usr/bin/apt update
Участники группы GROUPB смогут запускать эту команду без подтверждения паролем.
Настройка количества попыток ввода пароля
По умолчанию sudo даёт пользователю три попытки ввода пароля. Это значение можно изменить.
Например, чтобы разрешить четыре попытки:
Defaults passwd_tries=4
Изменение сообщения об ошибке
Можно изменить и текст сообщения, которое появляется при неправильном вводе пароля.
Пример настройки:
Defaults badpass_message="Your password is not correct!"
После этого пользователь будет видеть эту фразу вместо стандартного сообщения “Sorry, try again.”
Файл /etc/sudoers играет важную роль в системе управления правами Linux. С его помощью можно точно определить, кто и какие команды имеет право выполнять с повышенными привилегиями.
В этом материале мы рассмотрели лишь несколько базовых параметров и примеров настройки. Возможности sudoers значительно шире: при необходимости можно гибко ограничивать команды, управлять правами отдельных пользователей и строить достаточно сложные правила доступа.
Похожее
Все статьи
Ошибка 504 Gateway Timeout: что происходит и как с этим работать
Ошибка 504 — это HTTP-статус из группы 5xx. Он указывает на проблему на стороне сервера, но не на самом сайте напрямую. Сбой возникает в цепочке взаимодействия между серверами. Суть простая: один сервер выступает в роли шлюза или прокси. Он отправляет…
Онлайн-сервисы для проверки сайта на вирусы
Когда с сайтом происходит что-то нехорошее, это не всегда видно сразу. Иногда он продолжает открываться как обычно, страницы на месте, дизайн не поехал, ошибок нет. Но при этом внутри уже может сидеть вредоносный код: редиректы, чужие скрипты, спамные вставки, фишинговые…