Re: pexpect with apache



Since it wont require pyexpect, and based on the operations you
accomplish with your python script, maybe that a bash script instead of
a python one might be the best tool for the job you're trying to
accomplish.


martdi wrote:
Sudo is probably the best solution here, since in the file sudo.conf
you could restrict the www user only to the python script that requires
it.

Also, using either sudo or the setuid flag would remove the need of
pexpect since all the commands will be run as the designated user.

for setuid flag:
chmod u+s pythonScript.py
chown root pythonScript.py

for the sudo solution, add an entry to /etc/sudo.conf or /etc/sudoers ,
depending on distro:
the syntax for a line in sudo.conf is:
user hostlist = (userlist) commandlist

so you might want to add:
www localhost = NOPASSWD: /var/www/htdocs/pythonScript.py

note:
Replace the /var/www/htdocs/pythonScript.py with the path to where
your script is
the NOPASSWD: is a flag that tells sudo that no password is
required

Lee Harr wrote:
Well, first i don't think it is a good idea to have the python script
tu su to root, but for it to work, i think (Totally unsure about that)
www has to be in group wheel to be able to su.


Maybe sudo can help here.

.



Relevant Pages

  • Re: pexpect with apache
    ... Sudo is probably the best solution here, ... you could restrict the www user only to the python script that requires ... using either sudo or the setuid flag would remove the need of ... chown root pythonScript.py ...
    (comp.lang.python)
  • Re: Running Python Scripts With sudo
    ... > here on running a Python script via 'sudo' to give it root system access? ... The value of "sudo" is that everyone must authenticate as themselves, ... The risks involved with setuid scripts involve the exploitation of race ...
    (comp.lang.python)
  • Running Python Scripts With sudo
    ... Given that setuid is a Bad Thing for scripts, what is the general consensus ... here on running a Python script via 'sudo' to give it root system access? ...
    (comp.lang.python)