[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cron jobs, env vars, and group ID ... oh my
From: |
Greg Wooledge |
Subject: |
Re: Cron jobs, env vars, and group ID ... oh my |
Date: |
Wed, 28 Nov 2012 12:50:39 -0500 |
User-agent: |
Mutt/1.4.2.3i |
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.