apache的每个站单独分配一个用户,先假设下,系统 /data 目录下 有www.abc.com 和www.bbs.com ,要实现的目的就是比如www.abc.com被入侵,入侵者看不到并且修改不了www.bbs.com站内的文件。
分享下apache的每个站单独分配一个用户,先假设下,系统 /data 目录下 有www.abc.com 和www.bbs.com ,要实现的目的就是比如www.abc.com被入侵,入侵者看不到并且修改不了www.bbs.com站内的文件。www.abc.om 用abc用户,www.bbs.com用bbs用户。
apache装完都有www-data用户www-data用户组,所以网站都是以这个用户用户组运行,要权限单独出来先建两个用户。
useradd -g www-data -d /dev/null -s /usr/sbin/nologin abc
useradd -g www-data -d /dev/null -s /usr/sbin/nologin bbs
然后 apt-get install apache2-mpm-itk (安全权限分离的安全模块)
再添加虚拟主机时候添加下指定用户
<VirtualHost *:80>
DocumentRoot "/var/www/www.abc.com"
ServerName www.abc.com
CustomLog /var/log/apache2/www.abc.com.log combined
AssignUserId abc www-data
<Directory "/var/www/www.abc.com">
allow from all
Options -Indexes
</Directory>
</VirtualHost>
然后重启下apache,这样每个网站运行用户就分离出来了,然后就是设置目录以及文件权限了,
chown root.root /data
chmod 751 /data (这样就可以禁止其它组查看该目录的权限,入侵者就看不到/data下有那些网站目录,当然你可以来个711 什么的)
cd /data
chown abc.www-data www.abc.com
chmod 500 www.abc.com
cd www.abc.com
chmod -R 700 upload 因为这个目录要上传,所以要给写人的权限
chmod -R 500 images 图片目录给500就可以,不需要写入,400也应该可以
chmod -R 500 *.php 防止php或者html被挂马,给个500或者400就行