以不同用户运行apache虚拟主机

第一种方法,给不同的虚拟机赋予不同的组及用户,然后把apache的用户加入这些组中;

第二种方法,使用apache2-mpm-itk补丁

apt install -y libapache2-mpm-itk

linux 多账户下实现Apache虚拟主机之间的相互隔离设置
来源 http://www.360doc.com/content/13/0813/09/13247663_306779363.shtml

1.假设 有两个站点 siteA 和 siteB(假设这两个站点的目录在/var/www/下)
2.使用root账户登录终端建立两个帐号 userA 和 userB, 要满足使用userA登录时候只能有权限进入siteA目录,登录siteB只能进入siteB目录

useradd userA
useradd userB

3.linux 在新建账户的时候如果没有为此帐号分配组,则默认会建立以该帐号同名的组,于是上面就自动产生了userA 和 userB组
4.然后将siteA 和 siteB这两个目录的所属

cd /var/www
chgrp userA siteA/ #注意这里的userA是同名的组名非帐户
chgrp userB siteB/
5.然后修改两个目录的访问权限,只能同一个组可有访问和修改

chmod 770 siteA/ #770的权限就是文件的创建者和所属组可有执行,读取,写入
chmod 770 siteB/

6.此时我们就实现了不同的用户组账户进入对应的目录的权限,但是此时Apache没有读取这两个目录的权限,因为Apache不属于上述任何组
7.启动Apache的默认账户一般是 apache (如果没有建立一个)
8.如果将Apache账户 分别加入 userA 和 userB组,那么apache 就有权限可有访问到这两个目录了

gpasswd -a apache userA #将apache账户分别加入 userA组和 userB组
gpasswd -a apache userA
service httpd restart

最后重启apache 就可有实现此功能了,如果不能解决可有发我邮件[email protected]
使用apache2-mpm-itk以不同用户运行apache虚拟主机

https://www.centos.bz/2011/11/apache-virtualhost-different-user-with-apache2-mpm-itk/

我们运行在apache的虚拟主机,有时候为了安全,需要为每个网站以不同的用户运行,这样当虚拟主机中的一个网站被入侵时,而不会影响到其它的虚拟主机。我们这里使用apache2-mpm-itk补丁来实现这种功能。

1、下载apache2和itk
到apache2-mpm-itk网站下载最新版的补丁http://mpm-itk.sesse.net/。

wget  http://apache.ziply.com//httpd/httpd-2.2.21.tar.gz
tar xzvf httpd-2.2.21.tar.gz
wget http://mpm-itk.sesse.net/apache2.2-mpm-itk-2.2.17-01.patch
2、为apache2打上mpm-itk补丁
cd httpd-2.2.21
patch -p1 < ../apache2.2-mpm-itk-2.2.17-01.patch
autoconf
3、编译apache2
编译apache2时,带上编译选项–with-mpm=itk,如:

./configure --with-mpm=itk
make
make install
4、配置apache2
<VirtualHost *:80>
ServerName www.example.com
...
 
<IfModule mpm_itk_module>
AssignUserId siteuser sitegroup
</IfModule>
</VirtualHost>

sitesuer是指apache以siteuser用户运行
sitegroup是指apache以sitegroup用户组运行

发表评论