Re: Setting up a new user and environment from within a python script

2008-02-07 Thread Henry Hollenberg
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 wellie something comparable to:
source .profile in bash

Thanks hgh.
-- 
http://mail.python.org/mailman/listinfo/python-list


Setting up a new user and environment from within a python script

2008-02-07 Thread Henry Hollenberg
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
-- 
http://mail.python.org/mailman/listinfo/python-list