使用ansible查看受控制用户的当前路径,发现是其他用户的路径,请问这个问题怎么解决?

ansible -i hosts -mshell -a "pwd" 受控制的用户是aiswa用户,返回结果应该是/home/aiswa结果是有的是/home/aiswa有的是/home/yjjs ,aiswa是sudo用户,yjjs是普通用户。

这个问题可能是因为你在受控制的远程主机上以其他用户身份执行了 sudo 命令,导致当前的工作路径并不是你期望的 aiswa 用户的路径,而是其他用户的路径。

为了解决这个问题,你可以在 Ansible 的 playbook 中指定使用 becomebecome_user 选项来切换到 aiswa 用户身份执行命令。具体而言,你可以编写一个类似以下的 playbook:

- hosts: your-host
  become: yes
  become_user: aiswa
  tasks:
    - name: show pwd
      shell: pwd

然后在终端上执行以下命令来运行 playbook:

ansible-playbook -i hosts your-playbook.yaml

这个 playbook 首先使用 become 选项切换到超级用户身份,然后使用 become_user 选项切换到 aiswa 用户身份,最后执行 pwd 命令获取当前工作路径。这样就可以确保当前执行命令的用户是 aiswa 用户,并且获取到的路径也是该用户的路径。

希望这个方法可以帮助你解决问题。

不使用剧本,就想使用命令,不知道问题出在了哪里,百度不到,大哥有遇到过类似的情况吗?

img