Ansible paramiko ssh завис, когда нужно повышать привилегии

Aug 20 2020

У меня есть устройства Sandvine на основе freebsd. Мне нужно создать playbook для мульти-автоматизации, но я сталкиваюсь с проблемой, когда мне нужно повысить свои привилегии, единственный способ повысить привилегии - с помощью этой команды, sv_enable sv_adminона работает как su -команда, она меняет приглашение с >$на >#sudo doesn здесь не работает, поэтому, когда я запускаю playbook и когда дошло до этой команды, sv_enable sv_adminplaybook зависает, я изменил ssh-соединение по умолчанию для Ansible на paramkio, но безуспешно столкнулся с той же проблемой, я ценю ваше быстрое внимание к этому вопросу и заранее спасибо.

Моя книга:

---
- hosts: device-01
  gather_facts: false
  remote_user: sv_admin
  connection: paramiko
  vars:
    ansible_ssh_private_key_file: /root/.ssh/m2q_id_rsa
    #ansible_ssh_pass: /root/.ssh/m2q_passphrase
  tasks:
    - name: Check Paramiko privilege escalation
      command: "{{ item }}"
      with_items:
        - id
        - pwd
        - 'sv_enable sv_admin'
        - id
      register: shell_output
    - debug: var=shell_output
    - debug:
        msg: hello

Ответы

0xDeCaffedC0de Aug 20 2020 at 22:35

На мой взгляд, вы уже нашли ответ:

  1. повысить привилегию, выполнив все, что вы сказали, в данном случае "sv_enable sv_admin".
  2. используйте «id», «whoami», «w», «who» или что-то подобное, чтобы наверняка знать, что какая-либо привилегия даже возросла.
  3. используйте "passwd" для EUID или UID (в зависимости от ситуации: но обычно чем меньше число, тем лучше / "больше привилегий"), чтобы навсегда изменить пароль для входа в систему ...

Сейчас я никогда не использовал Ansible, но он основан на python, поэтому функциональность должна быть легко доступна для чтения. Совет: используйте strace и / или ltrace, чтобы узнать, что происходит и / или как программа переводит команду sv_enable sv_admin. Если есть серия setuid, setgid, seteuid, setegid, serreuid и т. Д., Тогда sudo по существу также будет работать - помните: man sudo. <--- Существует множество способов раскрыть эту проблему, используя только логическое мышление.