CGI Permission Denied Troubleshooting

Resolve "Permission denied" errors when executing CGI scripts on Apache.

1. Verify and Correct Ownership

sudo chown -R www-data:www-data /path/to/cgi-bin
sudo chmod -R 755 /path/to/cgi-bin
sudo chmod 755 /path/to/cgi-bin/script.cgi

2. Check Immutable Attribute

lsattr /path/to/cgi-bin/

If files have the i attribute, remove it:

sudo chattr -i /path/to/cgi-bin/script.cgi

3. Apache Configuration

Ensure virtual host uses correct user/group:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /path/to/public_html
    SuexecUserGroup www-data www-data

    <Directory "/path/to/cgi-bin">
        Options +ExecCGI
        AllowOverride All
        Require all granted
        AddHandler cgi-script .cgi .pl
    </Directory>
</VirtualHost>

4. Disable suexec Temporarily

Comment out SuexecUserGroup to test if it's causing issues.

5. Check Logs

sudo tail -f /var/log/apache2/error.log
sudo cat /var/log/apache2/suexec.log

6. Filesystem Check

sudo touch /forcefsck
sudo reboot