Re: Run a linux system command as a superuser, using a python script

2009-02-24 Thread birdsong
On Feb 24, 11:44 am, Chris Rebert  wrote:
> On Tue, Feb 24, 2009 at 11:38 AM, madhav  wrote:
> > I have got postfix installed on my machine and I am updating on of its
> > configuration files programmatically(using python)(on some action).
> > Since any change in the configuration needs a reload, I need to reload
> > postfix to reflect the latest change. How can I do that in a python
> > script. Precisely, I have something like this:
>
> > import subprocess
> > subprocess.Popen('sudo /etc/init.d/postifx reload')
>
> > Since this script should be run in no-human environment(on the fly), I
> > cant supply the sudo password or even root password(if needed). Even
> > sudo doesn't have a flag to input the password for the command at the
> > first shot. How do I do this?
>
> pexpect may be useful in this situation -http://www.noah.org/wiki/Pexpect
>
> Cheers,
> Chris
>
> --
> Follow the path of the Iguana...http://rebertia.com

I vote down the pexpect, you'd be hardcoding a password.  How about
adjusting the sudoers file to grant the user of this script sudo on /
etc/init.d/postifx or even sudo on your python script.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Run a linux system command as a superuser, using a python script

2009-02-24 Thread geremy condra
Run the script as root and have it drop privs when it doesn't need them. Or
set up a separate daemon to do the rootish parts of it.
--
http://mail.python.org/mailman/listinfo/python-list


Re: Run a linux system command as a superuser, using a python script

2009-02-24 Thread Chris Rebert
On Tue, Feb 24, 2009 at 11:38 AM, madhav  wrote:
> I have got postfix installed on my machine and I am updating on of its
> configuration files programmatically(using python)(on some action).
> Since any change in the configuration needs a reload, I need to reload
> postfix to reflect the latest change. How can I do that in a python
> script. Precisely, I have something like this:
>
> import subprocess
> subprocess.Popen('sudo /etc/init.d/postifx reload')
>
> Since this script should be run in no-human environment(on the fly), I
> cant supply the sudo password or even root password(if needed). Even
> sudo doesn't have a flag to input the password for the command at the
> first shot. How do I do this?

pexpect may be useful in this situation - http://www.noah.org/wiki/Pexpect

Cheers,
Chris

-- 
Follow the path of the Iguana...
http://rebertia.com
--
http://mail.python.org/mailman/listinfo/python-list


Run a linux system command as a superuser, using a python script

2009-02-24 Thread madhav
I have got postfix installed on my machine and I am updating on of its
configuration files programmatically(using python)(on some action).
Since any change in the configuration needs a reload, I need to reload
postfix to reflect the latest change. How can I do that in a python
script. Precisely, I have something like this:

import subprocess
subprocess.Popen('sudo /etc/init.d/postifx reload')

Since this script should be run in no-human environment(on the fly), I
cant supply the sudo password or even root password(if needed). Even
sudo doesn't have a flag to input the password for the command at the
first shot. How do I do this?
--
http://mail.python.org/mailman/listinfo/python-list