我想用 Ansible 管理一堆/bin/rbash
作为默认 shell 运行的设备。
问题是 Ansible 总是尝试执行一系列rbash
根本不喜欢的命令:
umask 77 && mkdir -p \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\" && echo \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\"
有什么想法可以让我避免这个命令吗?
澄清一下:我想更改 Ansible 使用的 shell,并且只有一个用户可用。
答案1
嗯。我认为你可以用以下方法解决这个问题ansible 的原始模块。
请记住,虽然 rbash 是一个受限的 shell,但完全可以启动不受限制的子 shell;这更多的是为了防止事故而不是提供安全性。
所以这就是我要做的。我已经测试过并确认它成功更改了受限 shell。请注意,它必须提示输入密码,因为chsh
提示输入密码,而如果没有 root 访问权限,这是无法避免的。
---
- hosts: all
gather_facts: False
remote_user: username
tasks:
- name: change shell
raw: "bash -c 'chsh -s /bin/bash' <<< '{{chsh_password}}' "
vars_prompt:
- name: "chsh_password"
prompt: "Password"