配置 apache2 访问权限的最佳方法

配置 apache2 访问权限的最佳方法

我有一台装有 ubuntu 14.04 的服务器。

我安装了 apache2、php5 和 pure-FTPd。

因此 apache 在 mpm prefork 中运行,其中一个进程由 root 拥有,所有子进程由 www-data 拥有。

/var/www/html 由 root 拥有 (-rw-r--r-- 1 root root)

现在我有一个名为ftpuser的ftp用户。

什么是最好的方法(更安全),以便 ftpuser 可以在 /var/www/html 下创建和编辑文件?

我可以将 /var/www/html 的组所有者更改为具有写权限的 www-data 并将 ftpuser 添加到 www-data 组吗?

如果现在我也想使用 mediawiki,有时需要对 /var/www/html 具有写权限。同样的问题:我可以将 /var/www/html 的组所有者更改为具有写权限的 www-data 吗?

答案1

通常,向运行 Web 服务器(Ubuntu 下的 www-data)的帐户授予写权限不是一个好主意。

对于您的情况,我会将的所有者更改/var/www/htmlFTP用户对他来说是读写的,对组和其他人来说是只读的。Apache 至少需要能够读取此目录。

更新:如果您有多个用户需要访问权限,请将他们全部放在同一组中,将组所有权更改为该组,并授予该组读写访问权限。

从安全角度来看,授予 Apache 对其可以访问的所有文件的写权限并不是一个好主意。如果有人能够对您的 Web 服务器进行“恶意操作”,至少他无法直接使用 Apache 更改文件。

不要忘记确保您打算使用的 FTP 服务器的安装安全,以便让 ftpuser 上传文件。

如果 Mediawiki 需要写入某些文件,我会将这些文件的读写权限仅授予 www-data 用户(通过将这些文件的所有者设置为 www-data)。如果您无法预测哪些文件需要由 Web 应用程序写入,则最好将此应用程序隔离到“/var/www/html”的子文件夹中。

根据经验,我知道当某些文件需要正确访问时,应用程序的文档通常会详细说明哪些文件需要访问。

答案2

Apache2 Web 服务器在 Ubuntu Linux 中可用。要安装 Apache2:

在终端提示符下输入以下命令:

sudo apt-get install apache2 

基本设置

如果您希望配置新的虚拟主机或站点,请将该文件复制到同一目录中并使用您选择的名称。例如:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite

编辑新文件以使用下面描述的一些指令来配置新站点。

答案3

如果您尚未安装 Apache,您可以通过发出以下命令来安装:

sudo apt-get update
sudo apt-get install apache2

这就是拥有一个可以正常工作的 Web 服务器所需的全部内容。如果您在 Web 浏览器中访问 VPS 的 IP 地址,您将获得默认的 Apache 索引页:

your_domain_name_or_ip_address

It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

Ubuntu 和 Debian 中的 Apache 文件层次结构

在 Ubuntu 和 Debian 上,Apache 将其主要配置文件保存在“/etc/apache2”文件夹中:

cd /etc/apache2
ls -F

apache2.conf  envvars     magic            mods-enabled/  sites-available/
conf.d/       httpd.conf  mods-available/  ports.conf     sites-enabled/

查看 Apache2.conf 文件

Apache 服务器的主要配置详细信息保存在“/etc/apache2/apache2.conf”文件中。

该文件分为三个主要部分:全局 Apache 服务器进程的配置、默认服务器的配置和虚拟主机的配置。

在 Ubuntu 和 Debian 中,该文件的大部分内容是全局定义,而默认服务器和虚拟主机的配置则在最后通过使用“Include ...”指令来处理。

“Include”指令允许 Apache 将其他配置文件读入语句出现位置的当前文件中。结果是 Apache 在启动时动态生成一个总体配置文件。

如果您滚动到文件底部,会发现许多不同的“Include”语句。这些语句加载模块定义、ports.conf 文档、“conf.d/”目录中的特定配置文件,最后是“sites-enabled/”目录中的虚拟主机定义。

我们将重点关注文件的第一部分,以了解 Apache 如何定义其全局设置。

我希望这个对你有用

相关内容