Bash
Ansible 和 rbash
/bin/rbash
我想用 Ansible管理一堆作為預設 shell 執行的設備。問題是 Ansible 總是嘗試執行一個
rbash
根本不喜歡的命令列表:umask 77 && mkdir -p \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\" && echo \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\"
有什麼想法可以避免這個命令嗎?
澄清一下:我想更改 Ansible 使用的外殼,並且只有一個使用者可用。
唔。我認為您可以使用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"