Я хочу управлять несколькими запущенными устройствами /bin/rbash
в качестве оболочки по умолчанию с Ansible.
Проблема в том, что Ansible всегда пытается выполнить список команд, которые rbash
совсем не нравится:
umask 77 && mkdir -p \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\" && echo \"` echo ./ansible-tmp-1460362654.19-62671997084808 `\"
Есть идеи, как я могу избежать этих команд?
Чтобы уточнить: я хочу изменить оболочку, которую использует Ansible, и доступен только один пользователь.
Хм. Я думаю, вы можете обойти это с помощью необработанный модуль ansible.
Помните, что хотя rbash является оболочкой с ограничениями, вполне возможно запустить подоболочку без ограничений; это больше предназначено для предотвращения несчастных случаев, чем для обеспечения безопасности.
Вот что я бы сделал. Я протестировал это и подтвердил, что он успешно изменяет ограниченную оболочку. Обратите внимание, что он должен запрашивать пароль, потому что 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"