(13)Permission denied: access to /cgi-bin/test.cgi denied
Check your os permissions for test.cgi and be sure the user or group you are using to run your apache it has read access.
EDIT - The problem is with permissions, but not with read permissions, as you are using SELinux, you need to worry about your file context. Check this thread at fedora forums, it explains quite a few options to solve your problem.
Simple cgi script fails with permission denied error
Dave Mitchell's comment is correct. After entering sudo setenforce permissive on the command line, the script runs as expected.
python cgi PermissionError: [Errno 13] Permission denied:
The line you mention takes the content of uploaded file and writes it to the server directory with the original filename given by web user.
The error has nothing to do with hello.py permissions, in order to fix it you need to make sure files
directory exists and has write permission.
However, most likely you need to specify more accurate file / directory names for uploaded file area (for example original web user file name is not the best idea) and add the appropriate write permissions.
PermissionError: [Errno 13] Permission denied while running a server-side CGI scripts coded in Python
Use this
chmod 777 script_name
,
then execute the script if it fails again then use
sudo python script_name
or check how to run script using administrator privileges on your respective operating system.
Python CGIHTTPServer crashes with OSError: [Errno 13] Permission denied
Are you, by any chance, running the process as root?
If you use the source, you will see in CGIHTTPServer.py
, just before calling execve
:
try:
os.setuid(nobody)
except os.error:
pass
That is, it will run the CGI script as nobody, if it is able to change the UID, that is if it is root. If it is not root, this call will most likely fail, and pass on.
So my guess is that you are running the server as root, so the script is run as nobody, but this user doesn't have access to the script. Which is expected, as you say that it is in your home dir.
Two solutions that I can think of:
- The recommended: do not run the server as root!
- The workaround: copy the script to a directory where nobody can read it (
/tmp
for example).
Apache2 CGI Execution Permission Denied
You are getting this error because the shebang line (the first line of the script, starting with #!
) specifies the interpreter that is launched to execute the script. What failed was therefore launching /usr/lib/cgi-bin
as an executable.
Replace
#!/usr/lib/cgi-bin
with
#!/usr/bin/perl
If that still doesn't work, one possibility is that perl
is in an ununsual location, and you could try
#!/usr/bin/env perl
One suggestion, if you can use a shell on the machine where your script lives, would be to try executing it directly. Had you done this, you would have seen a slightly more explanatory message "bad interpreter: Permission denied".
Running CGI With Perl under Apache Permission Problem
Make sure you have a <Directory> section for the cgi-bin directory. And make sure "allow from all" is in it.
<Directory /var/www/mychosendir/cgi-bin>
Options +ExecCGI -Indexes
allow from all
</Directory>
Also...your ScriptAlias is for /cgi-bin/. Your URL is /mychosendir/cgi-bin. Unless you have some rewrite magic going on, your url should probably be http://my.host.com/cgi-bin/test.cgi , or you'll need to change your ScriptAlias line to look like
ScriptAlias /mychosendir/cgi-bin/ /var/www/mychosendir/cgi-bin
The error you posted in your update, sounds like you don't have a #! line at the beginning of your script. You'll need one, and it should look like
#!/path/to/your/perl
Related Topics
Get Subnet Mask in Linux Using Bash
Docker Compose Volume Permissions Linux
Move Lines Matching a Pattern from One File to Another
Docker Container Can Reach Dns But Not Resolve Hosts
/Etc/Lsb-Release Vs /Etc/Os-Release
Command Line Arguments to Docker Run
Can't Access Publicly Exposed Docker Container Port from External Machine, Only from Localhost
Gnu Time and Formatting Output
Extract Lines When Column K Is Empty with Awk/Perl
How to Disable Non-Breaking Space with Altgr+Space
(13)Permission Denied: Access to /Cgi-Bin/Test.Cgi Denied
Can a Pipe in Linux Ever Lose Data
Test If String Has Non Whitespace Characters in Bash