以编程方式创建用于运行Ansible-Playbook的sudo规则规则、方式、Playbook、Ansible

2023-09-04 02:00:50 作者:自己走的路跪着也要走完

如何为ansible-playbook正在使用的所有可能命令创建列表,以便可以创建sudoers文件?

为了测试剧本,我临时在/etc/sudoers.d中创建了一个条目:

tempuser ALL=(ALL:ALL) NOPASSWD:ALL
ansible 自动化运维工具 ansible安装以及常用的模块的了解

但有没有类似命令列表的插件或方法,这样我以后就可以创建一个类似

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

有什么想法吗?

推荐答案

如果要对Anable使用权限提升,则privilege escalation must be general

不能将权限提升权限限制为某些命令。Ansible并不总是使用特定的命令来执行某些操作,而是从每次都会更改的临时文件名运行模块(代码)。如果您使用‘/sbin/service’或‘/bin/chmod’作为允许的命令,则使用Ansible将失败,因为这些路径将与Ansible创建的用于运行模块的临时文件不匹配。如果您的安全规则将您的sudo/pbrun/doas环境限制为仅运行特定的命令路径,请使用不具有此限制的特殊帐户的Anable,或使用Red Hat Ansible Tower管理对SSH凭据的间接访问。

如上面的文档引用所示,这是该工具的一个众所周知的限制。如果这是您环境中的问题,请查看文档引用中上述建议的解决方法,或者根本不使用Ansible。