Como configurar o CGI no Ubuntu?

1

Sou muito novo no Apache no Ubuntu. Recentemente instalei o Apache2 no Ubuntu e estou tentando configurar o CGI. Eu adicionei as seguintes linhas no arquivo apache2.conf:

ScriptAlias  /cgi-bin/ /home/router/cgi-bin/

<Directory /home/router/cgi-bin/>
        Options ExecCGI
        AddHandler cgi-script cgi pl
</Directory>

E eu salvei e reiniciei o apache2, mas quando digito o seguinte no navegador:

http://192.168.1.1/cgi-bin/file1.cgi 

Eu recebo o seguinte erro:

You don't have permission to access /cgi-bin/file1.cgi on this server.
    
por user5499177 11.07.2016 / 05:33

1 resposta

2

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.

Em segundo lugar, sugiro criar um diretório dedicado em /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)

    
por Thomas Ward 11.07.2016 / 14:00