Настройки файла sudoers

Файл /etc/sudoers открывается в любом выбранном текстовом редакторе.

Пример содержимого файла:

Defaults env_reset
Defaults mail_badpass
Defaults secure_PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
root ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo ALL=(ALL:ALL) ALL
#includedir /etc/sudoers.d

Строки по умолчанию:

  • Первая строка "Defaults env_reset" сбрасывает среду терминала для удаления переменных пользователя. Эта мера безопасности используется для сброса потенциально опасных переменных среды в сеансе sudo.
  • Вторая строка "Defaults mail_badpass" предписывает Системе отправлять уведомления о неудачных попытках ввода пароля sudo для настроенного пользователя mailto. По умолчанию это учетная запись root.
  • Третья строка, начинающаяся с "Defaults secure_PATH=…", задает переменную PATH, которая будет использоваться для операций sudo. Это предотвращает использование пользовательских путей, которые могут быть вредоносными.

Четвертая строка, которая определяет для пользователя root привилегии sudo, отличается от предыдущих строк, определяет следующие значения полей в "root ALL=(ALL:ALL) ALL":

  • root – имя пользователя, которое правило будет применять к root;
  • первое "ALL" – данное правило применяется ко всем хостам;
  • второе "ALL" – пользователь root может запускать команды от лица всех пользователей;
  • третье "ALL" – пользователь root может запускать команды от лица всех групп;
  • четвертое "ALL" – данные правила применяются всем командам.

Это означает, что пользователь root сможет выполнять любые команды с помощью sudo после ввода пароля.

Следующие две строки похожи на строки привилегий пользователя, но задают правила sudo для групп. Имена, начинающиеся с %, означают названия групп.

В этом примере группа admin может выполнять любые команды от имени любого пользователя на любом хосте. Группа sudo имеет те же привилегии, но может выполнять команды от лица любой группы.

Последняя строка в файле выглядит как комментарий:

/etc/sudoers
...
#includedir /etc/sudoers.d

Однако данная строка означает, что файлы в каталоге /etc/sudoers.d также рассматриваются как источники и применяются.

Файлы в этом каталоге следуют тем же правилам, что и сам файл /etc/sudoers. Любой файл, который не заканчивается на ~ и не содержит символ ., также считывается и добавляется в конфигурацию sudo.

В основном это нужно, чтобы приложения могли изменять привилегии sudo после установки. Размещение всех правил в одном файле в каталоге /etc/sudoers.d позволяет видеть, какие привилегии присвоены определенным учетным записям, а также легко изменять учетные данные без прямого изменения файла /etc/sudoers.

Как и в случае с файлом /etc/sudoers, другие файлы в каталоге /etc/sudoers.d также следует редактировать с помощью команды visudo. Для редактирования этих файлов применяется следующий синтаксис:

sudo visudo -f /etc/sudoers.d/file_to_edit