Bug 38800

Summary: Не работает опция become_user
Product: Sisyphus Reporter: Antonov Alexander <aas>
Component: ansibleAssignee: pav <pav>
Status: CLOSED NOTABUG QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: cas, pav
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Пример плейбука none

Description Antonov Alexander 2020-08-12 10:51:07 MSK
Конфигурация:
- name: run setup.sh
  command: /home/test/setup.sh
  become_user: test

Скрипт не выполнится от нужного пользователя.
Comment 1 Pavel Vasenkov 2020-08-12 15:06:32 MSK
Created attachment 8906 [details]
Пример плейбука
Comment 2 Pavel Vasenkov 2020-08-12 15:08:02 MSK
Comment on attachment 8906 [details]
Пример плейбука

Необходимо добавить параметр
  become: yes
Comment 3 Antonov Alexander 2020-08-12 18:02:26 MSK
(Ответ для Pavel Vasenkov на комментарий #2)
> Комментарий к вложению 8906 [details] [подробности]
> Пример плейбука
> 
> Необходимо добавить параметр
>   become: yes

Для этого нужен sudo.
Comment 4 Pavel Vasenkov 2020-08-13 13:32:00 MSK
Да, sudo требуется.
А как планировалось повысить привилегии?

Как выполняется скрипт на локальной машине или удаленно?
Если локально, владелец playbook должен быть sudoer пользователем.
Если удаленно, то пользователь, которым логинимся, также должен уметь запускать с правами суперпользователя.
Comment 5 Antonov Alexander 2020-08-13 15:39:51 MSK
(Ответ для Pavel Vasenkov на комментарий #4)
> Да, sudo требуется.
> А как планировалось повысить привилегии?
> 
> Как выполняется скрипт на локальной машине или удаленно?
> Если локально, владелец playbook должен быть sudoer пользователем.
> Если удаленно, то пользователь, которым логинимся, также должен уметь
> запускать с правами суперпользователя.
Удаленно, логинюсь под root, потом мне нужно сделать su - testuser и пустить от этого пользователя скрипт.
Comment 6 Pavel Vasenkov 2020-08-13 16:11:07 MSK
По умолчанию sudo в системе установлен.
Необходимо проверить на удаленной машине разрешения на его использование:
# control sudowheel

если статус disabled, запустить:
# control sudowheel enabled
Comment 7 Andrey Cherepanov 2020-10-02 13:01:57 MSK
Согласно https://docs.ansible.com/ansible/latest/plugins/become.html#using-become-plugins вы можете указать метод повышения привилегий явно:

        become: yes
        become_user: test
        become_method: su

При этом надо учитывать особенность альтового su: http://altlinux.org/Su