sudo和ansible如何协同工作?

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 我强烈建议阅读有关权限提升的文档: 更新 对

我在Ansible中有上面的代码片段,我想知道一起使用BENG和sudo的行为。我知道Been的默认动作是将动作转换为sudo。在这种情况下,我的sudo在shell命令开始时会被取消吗?
当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