我想用Ansible管理一堆运行/bin/rbash作为默认外壳的设备。
问题是Ansible总是尝试执行rbash根本不喜欢的命令列表:
umask 77 && mkdir -p \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\" && echo \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\"有什么想法吗?我怎样才能避免这些命令?
为了澄清:我想改变shell的不可用的用途,而且只有一个用户可用。
发布于 2016-04-11 08:37:39
嗯。我想你可以用ansible's原始模块来解决这个问题。
记住,虽然rbash是一个受限的shell,但是完全有可能启动一个不受限制的子shell;它更多地是为了防止事故,而不是提供安全性。
所以这就是我要做的。我对此进行了测试,并确认它成功地更改了一个受限的shell。注意,它必须提示输入密码,因为chsh提示输入密码,如果没有根访问,这是不可避免的。
---
- 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"https://serverfault.com/questions/769404
复制相似问题