Bug 38800 - Не работает опция become_user
Summary: Не работает опция become_user
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: ansible (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: pav@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-08-12 10:51 MSK by Antonov Alexander
Modified: 2020-10-02 13:01 MSK (History)
2 users (show)

See Also:


Attachments
Пример плейбука (166 bytes, application/x-yaml)
2020-08-12 15:06 MSK, Pavel Vasenkov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
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