Primeiramente, eu não executaria o CGI do seu diretório /home/
. As permissões não estão configuradas para isso, para servidores da web, e podem levar a algumas dores de cabeça, às vezes, com configurações de permissões e outros problemas.
/var/www/
(como cgi-bin
) onde seus scripts CGI são colocados e usá-lo na configuração do Apache.
sudo mkdir -p /var/www/cgi-bin/
sudo chown $USER:www-data /var/www/cgi-bin/
Os comandos acima criarão o diretório e configurarão as permissões para que você possa gravar no diretório, e o servidor da Web poderá ler o diretório e ter acesso para fazer as coisas dentro do diretório.
De lá, derrube seu CGI ali, certifique-se de que ele pertence de maneira semelhante ( sudo chown $USER:www-data /var/www/cgi-bin/*
) e defina sua configuração do Apache para usar /var/www/cgi-bin
em vez de /home/router/cgi-bin
.
Se por algum motivo você precisar usar /home/router/cgi-bin
, precisará fazer várias coisas: permitir que www-data e todos os usuários percorram até o diretório cgi-bin
e fornecer www acesso de dados ao próprio diretório.
sudo chgrp www-data /home/router/cgi-bin
sudo chmod +rx /home/
sudo chmod +rx /home/router/
sudo chmod 750 /home/router/cgi-bin/
O problema com isto é que você tem que abrir seu diretório home apenas o suficiente para que a categoria 'outros' de usuários possam acessar a estrutura de diretório e atravessá-la. Esta é uma falha de segurança, porque qualquer outro usuário não deve ter permissão para percorrer o sistema de arquivos para o seu diretório home, desta forma, pois pode levar a um vazamento de dados ou roubo de dados pessoais. (É por isso que a maioria dos guias para servidores da web sugere NÃO usar diretórios pessoais e, em vez disso, diretórios dedicados em /srv/
ou /var/www/
para diretórios de documentos do servidor da web)