программно создать правила sudo для запуска ansible-playbook

Как мне создать список всех возможных команд, которые использует ansible-playbook, чтобы я мог создать файл sudoers?

Для тестирования плейбуков я временно создаю запись в /etc/sudoers.d:

tempuser ALL=(ALL:ALL) NOPASSWD:ALL

Но есть ли плагин или способ получить список команд, чтобы я мог позже создать список, например

tempuser ALL= NOPASSWD:  /bin/systemctl start  mariadb.service
...

Любые идеи?


person nbari    schedule 04.02.2021    source источник
comment
См. Ansible sudo с ограничительными разрешениями.   -  person Vladimir Botka    schedule 04.02.2021


Ответы (1)


Если вы собираетесь использовать повышение привилегий с помощью ansible, тогда повышение привилегий должно быть общим

Вы не можете ограничить разрешения на повышение привилегий определенными командами. Ansible не всегда использует определенную команду, чтобы что-то сделать, а запускает модули (код) из имени временного файла, которое каждый раз меняется. Если у вас есть «/sbin/service» или «/bin/chmod» в качестве разрешенных команд, это не сработает с ansible, поскольку эти пути не будут совпадать с временным файлом, который Ansible создает для запуска модуля. Если у вас есть правила безопасности, ограничивающие вашу среду sudo/pbrun/doas выполнением только определенных путей команд, используйте Ansible из специальной учетной записи, не имеющей этого ограничения, или используйте Red Hat Ansible Tower для управления непрямым доступом к учетным данным SSH.

Как показано в приведенной выше цитате из документации, это хорошо известное ограничение инструмента. Если это проблема в вашей среде, либо посмотрите на предложенные выше обходные пути в цитате из документации, либо вообще не используйте ansible.

person Zeitounator    schedule 04.02.2021
comment
не могли бы вы поделиться возможными обходными путями? - person nbari; 04.02.2021
comment
If you have security rules that constrain your sudo/pbrun/doas environment to running specific command paths only, use Ansible from a special account that does not have this constraint, or use Red Hat Ansible Tower to manage indirect access to SSH credentials. ... или вообще не используйте ansible. - person Zeitounator; 04.02.2021