ansible - 以编程方式创建运行 ansible-playbook 的 sudo 规则
问题描述
我如何为正在使用的所有可能的命令创建一个列表,ansible-playbook
以便我可以创建一个sudoers
文件?
为了测试剧本,我暂时在以下位置创建了一个条目/etc/sudoers.d
:
tempuser ALL=(ALL:ALL) NOPASSWD:ALL
但是有没有一个插件或方法来获取命令列表,以便我以后可以创建一个类似的列表
tempuser ALL= NOPASSWD: /bin/systemctl start mariadb.service
...
有任何想法吗?
解决方案
如果您打算将权限提升与 ansible 一起使用,那么权限提升必须是通用的
您不能将特权升级权限限制为某些命令。Ansible 并不总是使用特定的命令来做某事,而是从每次更改的临时文件名运行模块(代码)。如果您有 '/sbin/service' 或 '/bin/chmod' 作为允许的命令,这将因 ansible 失败,因为这些路径与 Ansible 为运行模块创建的临时文件不匹配。如果您的安全规则将 sudo/pbrun/doas 环境限制为仅运行特定的命令路径,请从没有此限制的特殊帐户使用 Ansible,或使用 Red Hat Ansible Tower 管理对 SSH 凭证的间接访问。
如上述文档引用所示,这是该工具的一个众所周知的限制。如果这是您的环境中的问题,请查看文档引用中的上述建议解决方法,或者根本不使用 ansible。
推荐阅读
- ios - 如何在引入 Xcode 源代码控制时避免 Ds_Store 和 pod?
- javascript - 如何将 mireds 转换为 RGB 或在 css 中显示 mireds?
- python - 在烧瓶应用程序 socketIO 脚本期间服务器等待
- asp.net-core - 如何使用身份服务器对活动目录用户进行身份验证?
- .net - 将变量的内容放入表达式中
- c# - 从单独项目中的 Tag Helper 访问程序集信息
- xml - 使用 XSLT 查找 XML 文件是否包含特定命名空间
- java - 如何将具有动态变量名的 JSON 对象反序列化为 Java POJO?
- elasticsearch - 如何使用弹性搜索从文本中查找相似标签
- php - 在 WordPress 后端隐藏除特定用户之外的所有页面