You could do something like:

groups:
pgonedatabaseuser = ReturnsZero(/bin/sh -c ${dblquote}/usr/bin/whoami | grep -q pgonedatabaseuser${dblquote}) pganotherdatabaseuser = ReturnsZero(/bin/sh -c ${dblquote}/usr/bin/whoami | grep -q pganotherdatabaseuser${dblquote})

(apologies for nasty e-mail wrapping)

Paul Krizak                         5900 E. Ben White Blvd. MS 625
Advanced Micro Devices              Austin, TX  78741
Linux/Unix Systems Engineering      Phone: (512) 602-8775
Microprocessor Solutions Sector


Christopher Browne wrote:
I've got a scenario where I'll need to run a cfengine script as
various users, and then do different actions based on the user name.
(No, no, can't use root; that is verboten by Powers That Be...)

For instance...  I have users pgonedatabaseuser,
pganotherdatabaseuser, pgyetanotherdatabaseuser.

I can write a nice tidy tidy section thus:

tidy:
  pgonedatabaseuser.onedatabase::
    /path/to/onedatabase
       pattern=pg_*.log
       age=$(pglogage)

  pganotherdatabaseuser.anotherdatabase::
    /path/to/anotherdatabase
       pattern=pg_*.log
       age=$(pglogage)

  pgyetanotherdatabaseuser.yetanotherdatabase::
    /path/to/yetanotherdatabase
       pattern=pg_*.log
       age=$(pglogage)

The trouble, at this point, is creating the
pgonedatabaseuser/pganotherdatabaseuser/pgyetanotherdatabaseuser
groups.

The best guess is something like:

control:
   tempusername = ( ExecResult(/usr/bin/whoami) )

groups:
   pgonedatabaseuser        = ( StrCmp(${tempusername}, "pgonedatabaseuser"))
   pganotherdatabaseuser    = ( StrCmp(${tempusername}, 
"pganotherdatabaseuser"))
   pgyetanotherdatabaseuser = ( StrCmp(${tempusername}, 
"pgyetanotherdatabaseuser"))

But apparently the groups are defined before tempusername gets defined.

There has got to be some better way that I'm not thinking of...



_______________________________________________
Help-cfengine mailing list
Help-cfengine@gnu.org
http://lists.gnu.org/mailman/listinfo/help-cfengine

Reply via email to