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

birdsong david.birdsong at gmail.com
Tue Feb 24 16:37:24 EST 2009


On Feb 24, 11:44 am, Chris Rebert <c... at rebertia.com> wrote:
> On Tue, Feb 24, 2009 at 11:38 AM, madhav <madhav.... at gmail.com> 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.



More information about the Python-list mailing list