sudo和ansible如何协同工作?
我在Ansible中有上面的代码片段,我想知道一起使用BENG和sudo的行为。我知道Been的默认动作是将动作转换为sudo。在这种情况下,我的sudo在shell命令开始时会被取消吗?sudo和ansible如何协同工作?,ansible,Ansible,我在Ansible中有上面的代码片段,我想知道一起使用BENG和sudo的行为。我知道Been的默认动作是将动作转换为sudo。在这种情况下,我的sudo在shell命令开始时会被取消吗? 当Been设置为true/yes时,我对shell:“sudo env”和shell:“env”得到了不同的结果。当您使用Been:true时,无需将sudo添加到命令中。您可以从文档中签出been_method。当您使用been:true时,它将为您附加sudo 我强烈建议阅读有关权限提升的文档: 更新 对
当Been设置为true/yes时,我对shell:“sudo env”和shell:“env”得到了不同的结果。当您使用
Been:true
时,无需将sudo
添加到命令中。您可以从文档中签出been_method
。当您使用been:true
时,它将为您附加sudo
我强烈建议阅读有关权限提升的文档:
更新
对不起,我误解了你的问题。默认的been_方法
位于ansible.cfg
中。当您在未指定been\u方法的情况下设置been:true
时,它基本上会在cmd
中添加一个sudo
前缀。在这里,我创建了一个示例:
#privilege_escalation.yaml
---
-名称:权限升级
主机:本地主机
任务:
-名称:无任何升级的命令
外壳:env
-名称:带sudo的命令
外壳:sudo env
-名称:带有BEN和sudo的命令
外壳:sudo env
变成:是的
您可以使用以下命令运行示例:
ansible playbook-vvv--ask been pass privilege\u escalation.yaml
第一个任务将运行env
。在结果中,您可以看到表示的USER=your_USER
行
在命令中使用sudo
时,第二个任务将运行sudo env
。在结果中,您可以看到USER=root
和
SUDO\u USER=您的用户
。这意味着您在运行env
命令时将权限升级为root
。环境变量表示调用sudo的用户
最后一个任务将运行sudo sudo env
。在结果中,您可以看到USER=root
和
SUDO\u USER=root
。这意味着您第一次成为root
用户,之后root
用户执行sudo env
命令
我希望这能有所帮助。@dorukerenaktas我知道“成为”和“成为”方法的作用。我只是好奇当Been和sudo一起使用时它会如何工作。当设置为true时,我对shell:“sudo env”和shell:“env”得到了不同的结果/yes@NandeeshBijoor我更新了答案,你可以检查一下。如果还有什么我能帮忙的,请告诉我。
- name: "read env"
shell: "sudo env"
become: true