Ansible повышение привилегий становится без флага -u - PullRequest
0 голосов
/ 07 января 2020

Как можно стать определенным пользователем без флага -u (sudo su test_user вместо sudo su -u test_user)

Инвентарь (хосты)

[example]
test0001.example.org ansible_become_user=test_user ansible_become=true

ansible .cfg:

[defaults]
timeout=30

[privilege_escalation]
become_method="sudo"
become_flags="su"

И на целевом компьютере:

$ sudo -l

User foo may run the following commands on test0001:
    (root) NOPASSWD: /bin/su test_user

Запуск плейбука теперь завершается неудачно с:

<test0001> (0, b'', b'')
<test0001> ESTABLISH SSH CONNECTION FOR USER: None
<test0001> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o ConnectTimeout=30 -o ControlPath=/home/foo/.ansible/cp/c7eeb339b6 -tt test0001 '/bin/sh -c '"'"'sudo su  -u test_user /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-geolooxawvydfclkjnetjajadmffqjvz ; /usr/bin/python /var/tmp/ansible-tmp-1578410709.7699296-180938533114945/AnsiballZ_setup.py'"'"'"'"'"'"'"'"' && sleep 0'"'"''
fatal: [test0001]: FAILED! => {
    "msg": "Timeout (32s) waiting for privilege escalation prompt: \r\nWe trust you have received the usual lecture from the local System\r\nAdministrator. It usually boils down to these three things:\r\n\r\n    #1) Respect the privacy of others.\r\n    #2) Think before you type.\r\n    #3) With great power comes great responsibility.\r\n\r\n"
}

И это потому, что он пытается стать test_user с sudo su -u test_user. Я на самом деле хочу, чтобы оно стало test_user с sudo su test_user (то есть без флага -u). Как можно было бы указать ansible не включать флаг -u?

Обратите внимание, что я не могу изменить файлы sudoers.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...