我想pipe理一些运行/bin/rbash的设备作为/bin/rbash的默认shell。
问题是Ansible总是试图执行一个rbash根本不喜欢的命令列表:
umask 77 && mkdir -p \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\" && echo \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\"
任何想法我怎么能避免这个命令?
澄清:我想更改Ansible使用的shell,并且只有一个用户可用。
嗯。 我想你可以通过安全的原始模块解决这个问题。
请记住,虽然rbash是一个受限制的shell,但完全可以启动一个不受限制的子shell。 这意味着更多的是为了防止事故而不是提供安全。
所以这是我会做的。 我已经testing了这一点,并确认它成功地更改了受限制的shell。 请注意,它必须提示input密码,因为chsh会提示input密码,而且在没有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"