Повышение привилегий#
В коллекцию ansible.builtin входят следующие расширения повышения привилегий:
runas;su;sudo.
runas#
Это расширение позволяет удаленному пользователю выполнять команды с привилегиями другого пользователя на узлах под управлением Windows.
Расширение имеет следующие особенности:
реализовано в обработчике модуля PowerShell и может использоваться только с подключениями по протоколу WinRM;
для использования расширения на целевом узле должна быть запущена служба Secondary Logon.
Расширение принимает следующие параметры:
become_flags– дополнительные аргументы в форматеkey=value, которые можно передать для командыrunasв Windows.Значение по умолчанию:
""(пустая строка).Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[privilege_escalation] become_flags = "" [runas_become_plugin] flags = ""
Переменные окружения:
ANSIBLE_BECOME_FLAGS;ANSIBLE_RUNAS_FLAGS.
Переменные в наборе сценариев:
ansible_become_flags;ansible_runas_flags.
Ключевое слово
become_flagsна уровне сценария или задачи.
become_pass– пароль учетной записи, используемой для повышения привилегий. Параметр можно передать следующими способами:Конфигурационный файл
ansible.cfg:[runas_become_plugin] password = adminpassword
Переменные окружения:
ANSIBLE_BECOME_PASS;ANSIBLE_RUNAS_PASS.
Переменные в наборе сценариев:
ansible_become_password;ansible_become_pass;ansible_runas_pass.
become_user(обязательный параметр) – название учетной записи, используемой для повышения привилегий. Параметр можно передать следующими способами:Конфигурационный файл
ansible.cfg:[privilege_escalation] become_user = admin [runas_become_plugin] user = admin
Переменные окружения:
ANSIBLE_BECOME_USER;ANSIBLE_RUNAS_USER.
Переменные в наборе сценариев:
ansible_become_user;ansible_runas_user.
Ключевое слово
become_userна уровне сценария или задачи.
su#
Это расширение позволяет удаленному пользователю выполнять команды, используя привилегии другого пользователя, с помощью утилиты su в Unix-подобных системах.
Предупреждение
В целях безопасности рекомендуется вместо su использовать sudo.
Расширение принимает следующие параметры:
become_exe– путь к исполняемому файлу, используемому для повышения привилегий.Значение по умолчанию:
su.Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[privilege_escalation] become_exe = su [su_become_plugin] executable = su
Переменные окружения:
ANSIBLE_BECOME_EXE;ANSIBLE_SU_EXE.
Переменные в наборе сценариев:
ansible_become_exe;ansible_su_exe.
Ключевое слово
become_exeна уровне сценария или задачи.
become_flags– дополнительные флаги, передаваемые утилитеsu.Значение по умолчанию:
""(пустая строка).Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[privilege_escalation] become_flags = "" [su_become_plugin] flags = ""
Переменные окружения:
ANSIBLE_BECOME_FLAGS;ANSIBLE_SU_FLAGS.
Переменные в наборе сценариев:
ansible_become_flags;ansible_su_flags.
Ключевое слово
become_flagsна уровне сценария или задачи.
become_pass– пароль учетной записи, используемой для повышения привилегий. Параметр можно передать следующими способами:Конфигурационный файл
ansible.cfg:[su_become_plugin] password = adminpassword
Переменные окружения:
ANSIBLE_BECOME_PASS;ANSIBLE_SU_PASS.
Переменные в наборе сценариев:
ansible_become_password;ansible_become_pass;ansible_su_pass.
become_user– название учетной записи, используемой для повышения привилегий.Значение по умолчанию:
root.Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[privilege_escalation] become_user = root [su_become_plugin] user = root
Переменные окружения:
ANSIBLE_BECOME_USER;ANSIBLE_SU_USER.
Переменные в наборе сценариев:
ansible_become_user;ansible_su_user.
Ключевое слово
become_userна уровне сценария или задачи.
prompt_l10n– список локализованных строк, которые Ansible использует, чтобы распознать запрос пароля от утилитыsu.Предупреждение
Не добавляйте в строку двоеточие. Ansible добавляет двоеточие автоматически. Если указать строку с двоеточием, например:
[su_become_plugin] localized_prompts = Пароль:
Ansible воспримет эту строку как
Пароль::, и не сможет распознать, что приведет к ошибке.Значение по умолчанию:
""(пустая строка).Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[su_become_plugin] localized_prompts = Password, Пароль
Переменная окружения
ANSIBLE_SU_PROMPT_L10N.Переменная в наборе сценариев
ansible_su_prompt_l10n.
sudo#
Это расширение позволяет удаленному пользователю выполнять команды, используя привилегии другого пользователя, с помощью утилиты sudo в Unix-подобных системах.
Расширение принимает следующие параметры:
become_exe– путь к исполняемому файлу, используемому для повышения привилегий.Значение по умолчанию:
sudo.Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[privilege_escalation] become_exe = sudo [sudo_become_plugin] executable = sudo
Переменные окружения:
ANSIBLE_BECOME_EXE;ANSIBLE_SUDO_EXE.
Переменные в наборе сценариев:
ansible_become_exe;ansible_sudo_exe.
Ключевое слово
become_exeна уровне сценария или задачи.
become_flags– дополнительные флаги, передаваемые утилитеsudo.Значение по умолчанию:
-H -S -n.Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[privilege_escalation] become_flags = -H -S -n [sudo_become_plugin] flags = -H -S -n
Переменные окружения:
ANSIBLE_BECOME_FLAGS;ANSIBLE_SUDO_FLAGS.
Переменные в наборе сценариев:
ansible_become_flags;ansible_sudo_flags.
Ключевое слово
become_flagsна уровне сценария или задачи.
become_pass– пароль учетной записи, используемой для повышения привилегий. Параметр можно передать следующими способами:Конфигурационный файл
ansible.cfg:[sudo_become_plugin] password = adminpassword
Переменные окружения:
ANSIBLE_BECOME_PASS;ANSIBLE_SUDO_PASS.
Переменные в наборе сценариев:
ansible_become_password;ansible_become_pass;ansible_sudo_pass.
become_user– название учетной записи, используемой для повышения привилегий.Значение по умолчанию:
root.Параметр можно передать следующими способами:
Конфигурационный файл
ansible.cfg:[privilege_escalation] become_user = root [sudo_become_plugin] user = root
Переменные окружения:
ANSIBLE_BECOME_USER;ANSIBLE_SUDO_USER.
Переменные в наборе сценариев:
ansible_become_user;ansible_sudo_user.
Ключевое слово
become_userна уровне сценария или задачи.