Ansible 和 rbash

Ále*_*áez 1 bash ansible

我想/bin/rbash用 Ansible管理一堆作为默认 shell运行的设备。

问题是 Ansible 总是试图执行一个rbash根本不喜欢的命令列表:

umask 77 && mkdir -p \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\" && echo \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\"
Run Code Online (Sandbox Code Playgroud)

任何想法如何避免此命令?

澄清一下:我想更改 Ansible 使用的 shell,并且只有一个用户可用。

Mic*_*ton 8

唔。我认为您可以使用ansible 的 raw module解决这个问题。

请记住,虽然 rbash 是一个受限制的 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"
Run Code Online (Sandbox Code Playgroud)