Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python CGI script permission denied when writing file

I've got a python script named test.cgi in /Library/WebServer/CGI-Executables. I have an index.html file in /Library/WebServer/Documents. My html file contains a form that posts to the CGI script and that works fine. When my script attempts to write a file I get the following error:

enter image description here

It doesn't matter what I specify as the output dir, I get the same error message. I've tried changing the permissions on the cgi-bin folder and the script but that doesn't work either. Any suggestions?

like image 213
Clinton Jooooones Avatar asked Jul 24 '26 21:07

Clinton Jooooones


1 Answers

On Linux, a web server normally runs as an unprivileged user and group. Often user=www-data and group=www-data, but it depends on your setup. The CGI inherits this user and group.

To create a file as www-data you need to ensure the directory is writable to that user.

One common way is to make sure that the directory is in group www-data and writable. The following commands are an example:

$ chgrp www-data /Users/user/Documents/pictures
$ chmod g+rwx /Users/user/Documents/pictures

This will only work if you are yourself in group www-data (or root).

You might want to make existing files in that directory writable:

$ chgrp www-data /Users/user/Documents/pictures/*
$ chmod g+rw /Users/user/Documents/pictures/*

You also need to check that all the directories above /Users/user/Documents/pictures are accessible to www-data. So chgrp/chmod them as well if they are not open to anyone.

like image 125
Michael Paddon Avatar answered Jul 27 '26 10:07

Michael Paddon



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!