Сегодня поговорим про полезные настройки Sudoers. В Linux и других Unix-подобных операционных системах только пользователь root может запускать все команды и выполнять определенные критические операции в системе, такие как установка и обновление, удаление пакетов, создание пользователей и групп, изменение важных файлов конфигурации системы и т. д.
Однако системный администратор, который выполняет роль пользователя root, может разрешить обычным пользователям системы выполнить ряд жизненно важных системных операций, в том числе упомянутых выше. Это возможно с помощью команды sudo.
Кроме того, системный администратор может попросту поделится паролем пользователя root (мы не рекомендуем этот методом), чтобы обычные пользователи системы имели доступ к учетной записи пользователя root через команду su.
Sudo позволяет разрешенному пользователю выполнять команду как пользователь root (или другой пользователь), как указано в политике безопасности:
- Он читает и анализирует /etc/sudoers, просматривает параметры пользователя который обращается и его разрешения,
- Затем запрашивает у этого пользователя пароль (обычно пароль пользователя, но он также может быть паролем целевого пользователя или может быть пропущен с тегом NOPASSWD),
- После этого sudo создает дочерний процесс, в котором он вызывает setuid() для переключения на целевого пользователя
- Затем он выполняет команду, заданную выше в качестве аргументов в дочернем процессе.
Ниже приведены конфигурации файлов /etc/sudoers для изменения поведения команды sudo с использованием записей по умолчанию.
Типы записей по умолчанию
Вы должны заметить, что опции неявно логичны и могут быть отключены с помощью ‘!‘. Операторы и списки имеют два дополнительных оператора присваивания, ‘+=’ (добавить в список) и ‘-=’ (удалить из списка).
1. Установите Secure PATH
Это путь, используемый для каждой команды sudo, имеет два значения:
- Используется, когда системный администратор не доверяет пользователям sudo и для этого создает безопасную переменную среды PATH
- Чтобы отделить «корневой путь» и «путь пользователя», этот параметр не влияет только на пользователей, определенных exempt_group.
Чтобы установить его, добавьте строку:
2. Включить sudo для сеанса входа в систему TTY.
Чтобы включить sudo из реального tty, но не с помощью скриптов cron или cgi-bin, добавьте строку:
3. Запустите команду Sudo с помощью pty
Бывает, что злоумышленники пытаются запускать вредоносную программу с помощью sudo, которая разветвит фоновый процесс и он остается активным на терминале пользователя, даже после того как основная программа завершила свое выполнение.
Чтобы избежать такого сценария, вы можете настроить sudo на запуск команд только с помощью psuedo-pty с использованием параметра use_pty, независимо от того, включено ли ведение журнала ввода-вывода или нет:
4. Создайте файл журнала Sudo
По умолчанию sudo регистрируется через syslog(3). Однако, чтобы указать пользовательский файл журнала, используйте параметр logfile следующим образом:
Чтобы записать имя хоста и год в пользовательском файле журнала, используйте параметры log_host и log_year следующим образом:
Ниже приведен пример пользовательского файла журнала sudo:
5. Ведение журнала sudo при вводе/выводе
Параметры log_input и log_output позволяют sudo запускать команду в псевдо-tty и регистрировать все входные данные пользователя и все выходные данные, которые передаются на экран.
Каталог журнала ввода-вывода по умолчанию — /var/log/sudo-io, если есть порядковый номер сеанса, он также сохраняется в этом каталоге. Вы можете указать пользовательский каталог через параметр iolog_dir.
Поддерживаются некоторые управляющие последовательности, такие как %{seq}, которая расширяется до монотонно возрастающего номера последовательности base-36, такого как 000001, где каждые две цифры используются для формирования нового каталога, например. 00/00/01, как в примере ниже:
Вы можете просмотреть остальные файлы в этом каталоге, используя команду cat.
6. Извещение пользователя о Sudo
Чтобы извещать пользователей sudo о использовании пароля в системе, используйте параметр lecture, как показано ниже.
Он имеет 3 возможных значения:
- Всегда — всегда уведомлять пользователя.
- Один раз — уведомить пользователя при первом выполнении команды sudo (это используется, когда значение не указано)
- Никогда — никогда не уведомлять пользователя.
Кроме того, вы можете установить собственный файл уведомления с параметром lecture_file, введите соответствующее сообщение в файл:
7. Вывод пользовательского сообщения при вводе неправильного пароля sudo
Когда пользователь вводит неверный пароль, в командной строке отображается определенное сообщение. По умолчанию сообщение «sorry, try again», вы можете изменить сообщение, используя параметр badpass_message, следующим образом:
8. Увеличьте ограничение количества неверного ввода пароля для sudo
Параметр passwd_tries используется для указания количества попыток пользователя ввести пароль.
Значение по умолчанию — 3:
Чтобы установить тайм-аут пароля (по умолчанию — 5 минут) с использованием параметра passwd_timeout, добавьте следующую строку:
9. Пусть sudo ругается на вас, когда вы вводите неправильный пароль
Если пользователь вводит неверный пароль, sudo будет ругаться в терминале. Это автоматически отключит параметр badpass_message.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
2 комментария. Оставить новый
Молодец! Хорошая статья!
Спасибо огромное! Максимально понятно!