Linux Web 服务权限

Linux Web 服务权限

我正在使用 Apache、CGI(C++)和平面文件(数据)在 Linux 中实现我的简单 web 服务。

我将 WWW 位置路径保存在/usr/share/www/ CGI 位置路径中,将/usr/lib/cgi-bin/ 数据位置路径中/usr/share/Data/

我只想通过 Apache 服务器和 CGI​​ 应用程序访问位于 WWW 和 Data 中的文件。有时我会更新 Data 文件,有时我会使用 CGI 应用程序将某些文件从 Data 复制到 WWW 文件夹。 重要的是我的数据文件只能由我的 CGI 应用程序访问无论如何都不能由其他人复制。所以我决定像下面这样授予权限和所有权。但它无法将文件从数据复制到 WWW 文件夹。

sudo chmod 644 -R /usr/share/Data/
sudo chown www-data /usr/share/Data/

使用我的 CGI 应用程序将文件从数据复制到 WWW 不起作用。我应该为上述 3 个位置(WWW、CGI、数据)提供哪些权限才能保护我的 Web 服务。

我的 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

相关内容