Delete a file from a CGI

Steve Holden steve at holdenweb.com
Fri Jun 1 12:25:55 EDT 2007


Matias Surdi wrote:
> Thanks for your reply.
> 
> This is the code that creates the file:
> lock_file = open(".lock","w")
> lock_file.write("test")
> lock_file.close()
> #Change permissions so that CGI can write lock file
> os.chmod(".lock",stat.S_IMODE(stat.S_IRWXU | stat.S_IRWXO | stat.S_IRWXG))
> 
> This script was run as root.
> 
> Now, the code of the CGI that should delete the file:
> 
> #As you see, I can write to the file
> lock_file = open(".lock","w")
> lock_file.write("")
> lock_file.close()
> # But the following line raises a "permission denied" OSError
> os.remove(".lock")
> 
> I've seen that the script is running as "nobody", but, the file is rwx by
> everybody. I've also tryed changing the owner of the file to "nobody" also,
> but no luck anyway.
> 
> Thanks a lot.
> 
> 
> Steve Holden wrote:
> 
>> Matias Surdi wrote:
>>> HI!
>>>
>>> I want to delete a file from a CGI, but I always get a Permission denied
>>> error.
>>>
>>> I've tryed this after creating the file (from a normal script):
>>>
>>> os.chmod(".lock",stat.S_IMODE(stat.S_IRWXU | stat.S_IRWXO |
>>> stat.S_IRWXG))
>>> os.chown(".lock",pwd.getpwnam("nobody")[2],pwd.getpwnam("nobody")[3])
>>>
>>> but the CGI still can't delete the file.
>>>
>>> I will appreciate very much your help.
>>>
>>> Thanks a lot.
>>>
>>>
>> How was the file created in the first place? If you don't have
>> permissions to delete it you may well not have permissions to reown it
>> or change its permissions either!
>>
Most likely, your problem is that to delete a file you need write 
permissions on the directory that contains it [1]. Apparently the web 
user (nobody, or apache, or whatever) doesn't have those permissions.

regards
  Steve

[1]: Unless the sticky bit is set on the containing directory, when 
other tests are applied instead. If this makes no sense to you, ignore it.
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC/Ltd           http://www.holdenweb.com
Skype: holdenweb      http://del.icio.us/steve.holden
------------------ Asciimercial ---------------------
Get on the web: Blog, lens and tag your way to fame!!
holdenweb.blogspot.com        squidoo.com/pythonology
tagged items:         del.icio.us/steve.holden/python
All these services currently offer free registration!
-------------- Thank You for Reading ----------------




More information about the Python-list mailing list