Повышение привилегий

Содержание

Повышение привилегий#

В коллекцию 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 на уровне сценария или задачи.