Estou implementando meu webservice simples no linux usando Apache, CGI (C ++) e Flat File (Data).
Mantive meu caminho de localização da WWW em /usr/share/www/
Caminho de localização CGI em /usr/lib/cgi-bin/
Caminho do local dos dados em /usr/share/Data/
Eu só queria acessar meus arquivos localizados em WWW e Data somente através do meu servidor Apache e do aplicativo CGI. Às vezes eu atualizo meus arquivos de dados, algumas vezes eu vou copiar alguns arquivos da pasta Data para WWW usando o aplicativo CGI. Importante que meus arquivos de dados devem ser acessados pelo meu aplicativo CGI não por nenhum outro a qualquer custo. Então decidi dar permissão e propriedade, assim como seguir. Mas não foi possível copiar um arquivo dos dados para a pasta WWW.
sudo chmod 644 -R /usr/share/Data/
sudo chown www-data /usr/share/Data/
Não está funcionando para copiar um arquivo de dados para WWW usando meu aplicativo CGI. Quais são as permissões que devo fornecer para o acima 3 locais (WWW, CGI, dados) para proteger meu serviço da Web.
Minha configuração do Apache é
<VirtualHost *:80>
ServerName www.mytestsite.com
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin/">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
<Directory /usr/share/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet