在我的Linux机器上,系统中有三个用户级别。
- base_user
- higher_user
- root
我通过SSH远程连接到base_user级别的计算机。 我的ssh密钥设置允许我自动以base_user身份登录。 然后我想更改为没有sudo权限的higher_user。 从ansible文档(http://docs.ansible.com/ansible/latest/become.html),变为和become_user需要在base_user上使用sudo才能成为higher_user。 我不想让high_user或base_user拥有sudo权限。
是否有任何解决方法只是在ansible中完全遵循?
1. login as base_user with ssh key setup
2. switch user to higher_user with password input
答案 0 :(得分:0)
sudoers文件中的这一行将允许base_user使用sudo作为higher_user运行命令。它不允许base_user以root或任何其他用户身份运行命令。
base_user ALL=(higher_user) ALL
从那里你可以在你的剧本中使用become
和become_user
。
- hosts: some_host
become: True
become_user: higher_user
tasks:
...
当您运行ansible-playbook
时,您需要使用--ask-become-pass
(-K
)提供base_user的密码。