Try the dev group ;) You have far better chances getting an answer from 
there.


Silviu

On 25.11.2009 11:35, symfrog wrote:
> Puppet custom functions and user permissions
>
> I am busy writing a custom function to automatically add OSSEC agents
> to a OSSEC server after installation. Unfortunately, it seems that
> puppetmasterd is not respecting the entries in /etc/group in linux. No
> matter how many other groups the puppet user has been added to in /etc/
> group, when puppetmasterd runs the custom function the effective/real
> user always only has the puppet group.
>
> An example:
>
> module Puppet::Parser::Functions
>    newfunction(:ossec_client_key, :type =>  :rvalue) do |args|
>        # Check if key for the fqdn already exists
>       fqdn = lookupvar('fqdn')
>       ip = lookupvar('ipaddress')
>
>       fout = File.open("/home/puppet/ossec_client_key.log", 'w')
>       fout.puts "ossec_client_key executed with: " + fqdn + ":" + ip
>
>       userid = `id`
>       fout.puts "Shell commands run as: " + userid
>       fout.puts "Ruby effective uid: " + Process.euid.to_s
>
>       key = `cat /var/ossec/etc/client.keys | egrep #{fqdn}`
>       fout.puts File.executable?("/var/ossec/contrib/ossec-batch-
> manager.pl")
>       fout.close
>
>       # If it does not exist add the fqdn to ossec with ip
>       if($? != 0)
>        output = `/var/ossec/contrib/ossec-batch-manager.pl -a -n #{fqdn} -
> ip #{ip}`
>       end
>
>       # Now extract the key for the fqdn from ossec
>       agent_id = `cat /var/ossec/etc/client.keys | egrep #{fqdn} | awk
> '{print $1}'`
>       key = `/var/ossec/contrib/ossec-batch-manager.pl -e #{agent_id}`
>
>       if($? != 0)
>       raise Puppet::ParseError, "Could not retrieve key for:" + fqdn
>       end
>
>
>       return key
>    end
> end
>
> Output in ossec_client_key.log:
>
> Shell commands run as: uid=1004(puppet) gid=1002(puppet) groups=0
> (root)
> Ruby effective uid: 1004
> false
>
>
> When I run the same command directly via ruby using:
>
> sudo -u puppet ruby ...
>
> I get:
>
> Shell commands run as: uid=1004(puppet) gid=1002(puppet) groups=1001
> (ossec),1002(puppet)
> Ruby effective uid: 1004
> true
>
>
> Is this a bug or intended behaviour? If it is intended behaviour can
> anyone explain why?
>
> Thanks
>
> --
>
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
>
>
>    

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.


Reply via email to