On Wed, Nov 28, 2012 at 09:10:02AM -0800, Mun wrote:
> I need to run a script via cron that in turn launches a script to set up the
> requisite environment variables needed for a successive script that is called.
> Moreover, I need to change my group ID in order for the scripts called within
> the cron job to run properly.

This belongs on help-bash, not bug-bash.

> #! /bin/bash
> 
> newgrp group1
> id -g -n             // This shows my login group ID, not group1

Ah, the fundamental question here is "how does newgrp(1) work".

Quoting the HP-UX man page:

      The newgrp command changes your group ID without changing your user ID
      and replaces your current shell with a new one.

And a demonstration (from bash):

imadev:~$ id
uid=563(wooledg) gid=22(pgmr) groups=1002(webauth),208(opgmr)
imadev:~$ echo $$
8282
imadev:~$ newgrp opgmr
imadev:~$ echo $$
4859
imadev:~$ id
uid=563(wooledg) gid=208(opgmr) groups=22(pgmr),1002(webauth)
imadev:~$ exit
imadev:~$ echo $$
8282

So, you can see that this is utterly useless in a script.  Try using
sudo(1) instead if it's available.

P.S., newgrp works very differently from within ksh, where it is a
shell builtin.  Still useless in a script, though.

Reply via email to