Назад | Перейти на главную страницу

Ansible и rbash

Я хочу управлять несколькими запущенными устройствами /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"