On Feb 7, 3:30 pm, [EMAIL PROTECTED] wrote: > On Feb 7, 11:15 am, Henry Hollenberg <[EMAIL PROTECTED]> wrote: > > > > > Hello, > > > I have written a script that uses environment variables set during > > a particular users login in ".bash_profile" and ".profile". > > > I have changed to that users uid and gid in my python script using: > > > import os > > os.setegid > > os.setgid > > os.seteuid > > os.setuid > > > but I still am not picking up the needed environment. When I run: > > os.environ I can see that I still have the environment of the user > > that owns the python script. > > > I would like to maintain the original script owner but somehow pick up > > the > > correct environment for the targeted user. Several options looked to > > create > > an environment in a sub-process which I don't think is the correct > > solution. > > > I could of course cut and paste the values from ".bash_profile" & > > ".profile" > > but figured there is probably a better, cleaner way to do the same. > > > Searched this forum with no luck and checked several python > > references. > > > What is the best practice to achieve this goal? > > > Thanks, Henry Hollenberg > > Since you're running the python script as root (the only we seteuid > would work) you could call the script using "su" and rely on it to set > the user's environment: > > su - otherusername /path/to/your/script > > Other than that, the alternatives are to parse the user's dot files > and set the appropriate env variables from within your script, but > that approach is fraught with problems. > > Hope that helps a little. > > e.
Right you are. Running it as a cron job. I'll try that trick in our cron.daily script. Just figured since you can change to another user from inside python their would be a way to change to another user's environment as well....ie something comparable to: source .profile in bash Thanks hgh. -- http://mail.python.org/mailman/listinfo/python-list