Ограничение команд sudo в Ansible. Это решение хорошо? - PullRequest
1 голос
/ 30 апреля 2020

В Ansible существует известная проблема, состоящая в том, что невозможно ограничить команды, которые пользователь ansible может запускать как root на хостах. Это связано с тем, что Ansible по существу запускает python скриптов через "sudo python".

Так что я пришел к этому очень простому решению: например, просто сделать очень простую обертку (хотя в прямом эфире Система, которую я написал бы в C):

#!/usr/bin/python3
import os
import sys

os.setregid(1001,1001)
os.setreuid(1001,1001)
os.environ["HOME"]="/home/byton"
os.environ["USER"]="byton"
os.system("python3 " + " ".join(sys.argv[1:]))

И установите ansible_python_interpreter для этой оболочки. Это должно вынудить ansible использовать не-root (пользовательский "bython" в данном случае), а затем мы можем использовать правила sudo, чтобы ограничить то, что он может запускать как root.

. Я проверил это и это работает, но мне кажется, что это слишком упрощенно c, так что мне интересно, не могли бы вы поделиться своими комментариями. Особенно, если вы думаете, что это плохая идея (дыра в безопасности? Что-то еще?)

Большое спасибо,

Oren

...