如何在linux中使用Puppet调用sudo命令

如何在linux中使用Puppet调用sudo命令,puppet,Puppet,使用下面的脚本在具有puppet版本3.7的redhat linux中调用sudo命令 Exec { cwd => "/home/dev02", command => "sudo -su dev01", path => "/usr/bin/", logoutput => "on_failure", } 我没有收到任何错误,但在执行此脚本之后, 当我使用“whoami”查看我的用户时,我仍然将其视为dev02 而不是dev01 有人能帮我吗 提前感谢。此

使用下面的脚本在具有puppet版本3.7的redhat linux中调用sudo命令

Exec {

  cwd => "/home/dev02",
  command => "sudo -su dev01",
  path => "/usr/bin/",
  logoutput => "on_failure",
}
我没有收到任何错误,但在执行此脚本之后, 当我使用“whoami”查看我的用户时,我仍然将其视为dev02 而不是dev01

有人能帮我吗


提前感谢。

此命令不会达到预期效果,因为所有
exec
资源命令都是在派生的进程中执行的。如果要以另一个用户的身份执行命令,则

例如:

exec { 'Touch some file':
  cwd       => '/home/dev02',
  command   => 'touch some_file',
  path      => '/usr/bin/',
  logoutput => 'on_failure',
  user      => 'dev01'
}

此命令不会执行预期的操作,因为所有
exec
资源命令都是在派生的进程中执行的。如果要以另一个用户的身份执行命令,则

例如:

exec { 'Touch some file':
  cwd       => '/home/dev02',
  command   => 'touch some_file',
  path      => '/usr/bin/',
  logoutput => 'on_failure',
  user      => 'dev01'
}
即使这样,也不会神奇地将交互式shell转换为使用不同的UID运行。通过脚本执行此操作的唯一方法是使其成为一个shell脚本,并对该shell脚本进行源代码解析(即,在当前shell中运行命令)。其他任何东西都不会影响您的运行过程。即使这样,也不会神奇地将您的交互式shell转换为使用不同的UID运行。通过脚本执行此操作的唯一方法是使其成为一个shell脚本,并对该shell脚本进行源代码解析(即,在当前shell中运行命令)。其他任何东西都不会影响您的运行过程。