Ansible paramiko ssh ติดขัดเมื่อต้องส่งต่อคำสั่งสิทธิ์
ฉันมีอุปกรณ์ sandvine ที่ใช้ freebsd ฉันต้องการสร้าง playbook สำหรับจุดประสงค์หลายระบบอัตโนมัติ แต่กำลังประสบปัญหาเมื่อฉันต้องการเพิ่มสิทธิ์ของฉันวิธีเดียวที่จะเพิ่มสิทธิ์ได้คือใช้คำสั่งนี้sv_enable sv_admin
มันทำงานเหมือนsu -
คำสั่งที่เปลี่ยนพรอมต์จาก>$
เป็น>#
sudo ไม่ ใช้งานไม่ได้ที่นี่ดังนั้นเมื่อฉันเรียกใช้ playbook และเมื่อพูดถึงคำสั่งนี้sv_enable sv_admin
เพลย์บุ๊กแฮงฉันเปลี่ยนการเชื่อมต่อ ssh เริ่มต้นสำหรับ Ansible เป็น paramkio แต่หากไม่มีโชคก็ยังคงประสบปัญหาเดียวกันฉันขอขอบคุณที่ให้ความสำคัญกับเรื่องนี้ และขอขอบคุณล่วงหน้า
Playbook ของฉัน:
---
- 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
คำตอบ
ในความคิดของฉันคุณได้พบคำตอบแล้ว:
- เพิ่มสิทธิ์โดยทำสิ่งที่คุณพูดในกรณีนี้คือ "sv_enable sv_admin"
- ใช้ "id", "whoami", "w", "who" หรือบางอย่างที่เหมือนกันเพื่อให้ทราบว่ามีการเพิ่มสิทธิ์ใด ๆ ก็ตาม
- ใช้ "passwd" ใน EUID หรือ UID (ขึ้นอยู่กับสถานการณ์: แต่โดยปกติตัวเลขที่ต่ำกว่าจะดีกว่า / "มีสิทธิ์มากกว่า") เพื่อเปลี่ยนรหัสผ่านสำหรับการเข้าสู่ระบบอย่างถาวร ...
ตอนนี้ฉันไม่เคยใช้ Ansible แต่มันขึ้นอยู่กับ python ดังนั้นควรอ่านฟังก์ชันการทำงานได้อย่างง่ายดาย เคล็ดลับ: ใช้ "strace" และ / หรือ "ltrace" เพื่อค้นหาว่าเกิดอะไรขึ้นและ / หรือโปรแกรมแปลคำสั่ง "sv_enable sv_admin" อย่างไร หากมีชุดของ setuid, setgid, seteuid, setegid, serreuid ฯลฯ ... sudo ก็จะใช้งานได้เช่นกัน - จำไว้ว่า: man sudo <--- มีตัวเลือกมากมายในการเปิดเผยปัญหานี้โดยใช้การคิดเชิงตรรกะเท่านั้น