Python CGI question/issue

C

Carlos Andrade

I have a working python script that takes in content from a form,
cleans it up, adds html formatting and then places it into my
index.html page on my server. When I had index.html set up as :
-rw-rw-r-- 1 carlos wheel 3517 Aug 4 09:51 index.html
I could not write back to the file,
Traceback (most recent call last):
File "/usr/local/www/cgi-bin/bob.py", line 24, in ?
file=open("../data/index.html","w")
IOError: [Errno 13] Permission denied: '../data/index.html'
[Wed Aug 4 09:50:47 2004] [error] [client X.X.X.X] Premature end of
script headers: /usr/local/www/cgi-bin/bob.py

and I though well shoot okay I need to make index.html -rw-rw-rw-,
when then made me a little paranoid. Is there a more simpler way to
make it possible for me to write back to index.html?
 
H

Harry George

I have a working python script that takes in content from a form,
cleans it up, adds html formatting and then places it into my
index.html page on my server. When I had index.html set up as :
-rw-rw-r-- 1 carlos wheel 3517 Aug 4 09:51 index.html
I could not write back to the file,
Traceback (most recent call last):
File "/usr/local/www/cgi-bin/bob.py", line 24, in ?
file=open("../data/index.html","w")
IOError: [Errno 13] Permission denied: '../data/index.html'
[Wed Aug 4 09:50:47 2004] [error] [client X.X.X.X] Premature end of
script headers: /usr/local/www/cgi-bin/bob.py

and I though well shoot okay I need to make index.html -rw-rw-rw-,
when then made me a little paranoid. Is there a more simpler way to
make it possible for me to write back to index.html?

The cgi is running as whatever the webserver is set for, probably
"nobody". So it doesn't matter that you personally own the file. The
cgi can only edit the file if "nobody" can do so.

Changing files on a website can be done many ways. They have little
to do with python per se, though they can be done with python.

1. For fairly simple tasks, why not rewrite the app as a batch job,
run it as you in a sandbox, and then copy the resulting html file
to the web-visible docs dir. That way you can control the
permissions in the copy process. If it is a remote site, and you
need ftp, consider ftpmirror.py and similar tools.

2. You have almost described a Content Mgmt System (CMS), and
something like zope plone might do what you want. Or for ad hoc
editing you consider a wiki (e.g., moinmoin).

3. webdav is the official mechanism for web editing. I haven't tried
it personally.

4. There is an apache module for changing user and group during a cgi.
It comes with all kinds of dire warnings.

5. If you can run your own webserver, it can be run as you, and thus
can control those files. Better would be to make a totally new
userid just for this task.

6. You could run your own web service, e.g., via Twisted. As with a
std webserver, it is better to have a separate userid for the task.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,996
Messages
2,570,238
Members
46,826
Latest member
robinsontor

Latest Threads

Top