On Mon, Jan 17, 2011 at 07:26:36PM -0800, pl wrote:
> Process.uid was telling me 500, which was the intended user. whoami
> inside the execpipe was root though.
> 
> I've ended up doing this
> 
>  def self.exec_as_user(op, pkg)
> 
>     Puppet::Util::SUIDManager.asuser("node", "node") do
>       s = execute ["my", "command", "and", "args"]
>       s.split("\n").collect do | line |
>         yield line
>       end
>     end
>   end
> 
> 
> which is doing what I want

You can also pass arguments to execute to run the command as a different
user. It should work like that

output = execute(['command','arg1], {uid => 'node', gid => 'node'})

What operatingsystem are you running? Looking at the source asuser will
just change euid and egid and from the manpage of whoami it should
return the euid. So I dont really understand why whoami is reporting
root and I dont really see why execute should behave
differently from execpipe.

-Stefan

Attachment: pgpvHFRYmAUPA.pgp
Description: PGP signature

Reply via email to