Полезные настройки Sudoers для ‘sudo’ в Linux

Новости

В Linux и других Unix-подобных операционных системах только пользователь root может запускать все команды и выполнять определенные критические операции в системе, такие как установка и обновление, удаление пакетов, создание пользователей и групп, изменение важных файлов конфигурации системы и т. д.

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

Кроме того, системный администратор может попросту поделится паролем пользователя root (мы не рекомендуем этот методом), чтобы обычные пользователи системы имели доступ к учетной записи пользователя root через команду su.

Sudo позволяет разрешенному пользователю выполнять команду как пользователь root (или другой пользователь), как указано в политике безопасности:

  • Он читает и анализирует /etc/sudoers, просматривает параметры пользователя который обращается и его разрешения,
  • Затем запрашивает у этого пользователя пароль (обычно пароль пользователя, но он также может быть паролем целевого пользователя или может быть пропущен с тегом NOPASSWD),
  • После этого sudo создает дочерний процесс, в котором он вызывает setuid() для переключения на целевого пользователя
  • Затем он выполняет команду, заданную выше в качестве аргументов в дочернем процессе.

Ниже приведены конфигурации файлов /etc/sudoers для изменения поведения команды sudo с использованием записей по умолчанию.

$ sudo cat /etc/sudoers

 

/etc/sudoers File
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults logfile="/var/log/sudo.log"
Defaults lecture="always"
Defaults badpass_message="Password is wrong, please try again"
Defaults passwd_tries=5
Defaults insults
Defaults log_input,log_output

 

Типы записей по умолчанию

Defaults parameter, parameter_list #affect all users on any host
[email protected]_List parameter, parameter_list #affects all users on a specific host
Defaults:User_List parameter, parameter_list #affects a specific user
Defaults!Cmnd_List parameter, parameter_list #affects a specific command
Defaults>Runas_List parameter, parameter_list #affects commands being run as a specific user

 

Вы должны заметить, что опции неявно логичны и могут быть отключены с помощью ‘!‘. Операторы и списки имеют два дополнительных оператора присваивания, ‘+=’ (добавить в список) и ‘-=’ (удалить из списка).

Defaults parameter
OR
Defaults parameter=value
OR
Defaults parameter -=value
Defaults parameter +=value
OR
Defaults !parameter 

 

1. Установите Secure PATH

Это путь, используемый для каждой команды sudo, имеет два значения:

  • Используется, когда системный администратор не доверяет пользователям sudo и для этого создает безопасную переменную среды PATH
  • Чтобы отделить «корневой путь» и «путь пользователя», этот параметр не влияет только на пользователей, определенных exempt_group.

Чтобы установить его, добавьте строку:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

 

2. Включить sudo для сеанса входа в систему TTY.

Чтобы включить sudo из реального tty, но не с помощью скриптов cron или cgi-bin, добавьте строку:

Defaults requiretty

 

3. Запустите команду Sudo с помощью pty

Бывает, что злоумышленники пытаются запускать вредоносную программу с помощью sudo, которая разветвит фоновый процесс и он остается активным на терминале пользователя, даже после того как основная программа завершила свое выполнение.

Чтобы избежать такого сценария, вы можете настроить sudo на запуск команд только с помощью psuedo-pty с использованием параметра use_pty, независимо от того, включено ли ведение журнала ввода-вывода или нет:

Defaults  use_pty

 

4. Создайте файл журнала Sudo

По умолчанию sudo регистрируется через syslog(3). Однако, чтобы указать пользовательский файл журнала, используйте параметр logfile следующим образом:

Defaults  logfile="/var/log/sudo.log"

 

Чтобы записать имя хоста и год в пользовательском файле журнала, используйте параметры log_host и log_year следующим образом:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

 

Ниже приведен пример пользовательского файла журнала sudo:

Create-Custom-Sudo-Log-File

 

5. Ведение журнала sudo при вводе/выводе

Параметры log_input и log_output позволяют sudo запускать команду в псевдо-tty и регистрировать все входные данные пользователя и все выходные данные, которые передаются на экран.

Каталог журнала ввода-вывода по умолчанию — /var/log/sudo-io, если есть порядковый номер сеанса, он также сохраняется в этом каталоге. Вы можете указать пользовательский каталог через параметр iolog_dir.

Defaults   log_input, log_output

 

Поддерживаются некоторые управляющие последовательности, такие как %{seq}, которая расширяется до монотонно возрастающего номера последовательности base-36, такого как 000001, где каждые две цифры используются для формирования нового каталога, например. 00/00/01, как в примере ниже:

$ cd / var / log / sudo-io /
$ ls
$ cd 00/00/01
$ ls
$ cat log

 

Log-sudo-Input-Output

Вы можете просмотреть остальные файлы в этом каталоге, используя команду cat.

 

6. Извещение пользователя о Sudo

Чтобы извещать пользователей sudo о использовании пароля в системе, используйте параметр lecture, как показано ниже.

Он имеет 3 возможных значения:

  • Всегда — всегда уведомлять пользователя.
  • Один раз — уведомить пользователя при первом выполнении команды sudo (это используется, когда значение не указано)
  • Никогда — никогда не уведомлять пользователя.
Defaults  lecture="always"

 

Кроме того, вы можете установить собственный файл уведомления с параметром lecture_file, введите соответствующее сообщение в файл:

Defaults  lecture_file="/path/to/file"

 

Lecture-Sudo-Users

 

7. Вывод пользовательского сообщения при вводе неправильного пароля sudo

Когда пользователь вводит неверный пароль, в командной строке отображается определенное сообщение. По умолчанию сообщение «sorry, try again», вы можете изменить сообщение, используя параметр badpass_message, следующим образом:

Defaults  badpass_message="Password is wrong, please try again"

 

8. Увеличьте ограничение количества неверного ввода пароля для sudo

Параметр passwd_tries используется для указания количества попыток пользователя ввести пароль.

Значение по умолчанию — 3:

Defaults   passwd_tries=5 

 

Increase-Sudo-Password-Attempts

Чтобы установить тайм-аут пароля (по умолчанию — 5 минут) с использованием параметра passwd_timeout, добавьте следующую строку:

Defaults   passwd_timeout=2

 

9. Пусть sudo ругается на вас, когда вы вводите неправильный пароль

Если пользователь вводит неверный пароль, sudo будет ругаться в терминале. Это автоматически отключит параметр badpass_message.

Defaults  insults

 

Let’s-Sudo-Insult-You-When-Enter-Wrong-Password

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

 

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Новости

Больше похожих постов

Новая атака BLESA угрожает миллиардам Bluetooth-устройств, курсы переподготовки по информационной безопасности Минск

Новая атака BLESA угрожает миллиардам Bluetooth-устройств, курсы переподготовки по информационной безопасности Минск

52
0
Исследователи обнаружили новый метод атаки уязвимых Bluetooth-устройств. Если хакеры начнут ее эксплуатировать, но смогут заразить миллиарды приборов по всему миру.…
Российские хакеры похитили почти 17 миллионов долларов, курс по кибербезопасности секреты хакеров Минск

Российские хакеры похитили почти 17 миллионов долларов, курс по кибербезопасности секреты хакеров Минск

55
0
Власти США предъявили обвинения двум российским хакерам во взломе криптовалютных бирж. Более того, правоохранительные органы смогли собрать достаточно улик. Исследователи,…

1 комментарий. Оставить новый

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню