配置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吗?

通常,对运行Web服务器的帐户(Ubuntu下的www-data)提供写访问权限是个坏主意。

对于您的场景,我会将/var/www/html的所有者更改为ftpuser,并为他写一个读写,只读组和其他人。 Apache至少需要能够在此目录中读取。

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

在安全方面,给予他可以访问的所有文件的Apache写访问权限是一个坏主意。 如果有人能够使用您的Web服务器做“讨厌的事情”,至少他将无法直接使用Apache更改文件。

不要忘记确保安装要使用ftpuser上传文件的FTP服务器。

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

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

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

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

 sudo apt-get install apache2 

基本设置

如果要配置新的虚拟主机或站点,请将该文件复制到具有所选名称的同一目录中。 例如:

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

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

如果您尚未安装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在启动时动态生成一个总体配置文件。

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

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

我希望这个对你有用