Ansible 和 rbash

Ansible 和 rbash

我想用 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"

相关内容