我尝试配置ansible以成为其他用户:

我的ansible.cfg条目

sudo_flags=
ssh_args = -t -t
sudo_exe = sudo /bin/su


我只能以一种方式升级远程主机上的特权(这在ssh会话中有效):


  sudo / bin / su anyuser-


剧本范例:

---
- hosts: anyhosts
  become: true
  become_user: anyuser


  tasks:
  - name: check becoming anyuser
    command: "ls -ltha"


当我运行简单的剧本时,在详细的日志输出中,我看到-u选项:


  
    '“'”'sudo / bin / su -u anyuser-
  


我如何在Playbook或ansible.cfg中禁用/删除此-u选项?

最佳答案

您已经告诉Ansible sudosudo /bin/su,但是据Ansible知道它仍在使用sudo,它支持-u参数。如果要使用其他命令进行特权升级,请考虑设置become_method

但是,由于您似乎拥有sudo权限,因此不清楚为什么不只使用sudo。可能设置sudo_exe = sudo sudo实际上可以解决问题,因为第一个sudo将使您具有root访问权限(根据您的问题,它似乎可以正常工作),然后root可以运行sudo -u ...,这应该工作得很好。

关于linux - 我如何通过ansible配置删除sudo选项字符串中的-u,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39999697/

10-15 13:35