【问题标题】:Ansible with "sudo su - "Ansible 使用“sudo su -”
【发布时间】:2020-06-17 11:16:42
【问题描述】:

(已经有一些关于此的问题,但没有解决方案对我有用)

在我工作的服务器上,我们必须“sudo su - webapps”,然后将我们的命令作为 webapps 运行。 我相信 Ansible 没有提供执行此操作的本机方式(仅 sudo 可用,但系统管理员限制了我可以运行它的命令列表,su 可用于 Ansible,但不能在服务器上单独运行)。

我试过了 https://www.coveros.com/ansible-privledge-escalation-using-sudo-su/

[privilege_escalation]
become_exe=sudo su -

有剧本:

---
- hosts:
    - test
  become: yes
  become_user: webapps
  become_method: su
  tasks:
  - name: Updates file
    copy:
      src: a.txt
      dest: dest/a.txt

运行它会给出:

SSH:EXEC ssh -vvv -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="myUser"' -o ConnectTimeout=10 -o ControlPath=/Users/lmoreau/.ansible/cp/d895b40f7e -tt myServer '/bin/sh -c '"'"'sudo su - webapps -c '"'"'"'"'"'"'"'"'/bin/sh -c '"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'" '“'回声 成为成功-nxilvumwmfikgyuisutwiwobidrgqpao; /usr/bin/python /var/tmp/ansible-tmp-1583355901.6967812-200466745901442/AnsiballZ_setup.py'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'" '"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"' && 睡眠 0'"'"''

...

"msg": "等待提权提示超时(12s):\r\nWe 相信你已经收到了当地的常规讲座 系统\r\n管理员。通常归结为这三个 事情:\r\n\r\n #1) 尊重他人的隐私。\r\n #2) 思考 在你输入之前。\r\n #3) 强大的力量就是伟大的 责任。\r\n\r\n"

另一种尝试:

[privilege_escalation]
become_exe=’sudo su - ‘

"module_stdout": "/bin/sh: 'sudo: command not found\r\n", "msg": "MODULE FAILURE\n查看 stdout/stderr 了解确切的错误",

不覆盖 become_exe:

  • “su”方法给出“超时(12s)等待提权 提示:“

  • “sudo”方法给出“msg”:“缺少sudo密码”

注意:我没有我想成为的帐户的密码,也不应该有。

如何使用 Ansible 完成与手动操作相同的操作?

【问题讨论】:

标签: ansible


【解决方案1】:

使用这个:

- hosts: application
  become: yes
  become_exe: "sudo su - webapps"
  become_method: su
  tasks:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多