二、个人用户主页
Apache服务程序中有个默认未开启的个人用户主页功能,能够为所有系统内的用户生成个人网站,确实很实用哦~
1、开启个人用户主页功能
vi /etc/httpd/conf.d/userdir.conf
编辑如下:
将第17行的UserDir disabled前加一个#,代表该行被注释掉,不再起作用。
将第24行的UserDir public_html前的#号去除,表示该行被启用。
注意:UserDir参数表示的是需要在用户家目录中创建的网站数据目录的名称(即public_html)
重启Apache服务程序:
systemctl restart httpd
2、:创建个人用户网站数据。
切换至普通用户test的家目录:
[root@linuxprobe home]# su - test
创建网站数据目录public_html:
mkdir -p /home/test/public_html
写入首页文件内容:
echo "This is test's website" > /home/test/public_html/index.html
给予网站目录755的访问权限:
[linuxprobe@linuxprobe ~]$ chmod -Rf 755 /home/test
我们打开浏览器,访问地址为”http://10.0.101.100/~test“,不出意外果然是报错页面,肯定是SELinux服务在捣蛋。
3、设置SELinux允许策略。(root权限下)
这次报错并不是因为用户家的网站数据目录SELinux安全上下文没有设置了,而是因为SELinux默认就不允许Apache服务个人用户主页这项功能。
查看并搜索所有与家目录有关的SELinux策略:
getsebool -a | grep home
返回如下:
ftp_home_dir --> off
git_cgi_enable_homedirs --> off
git_system_enable_homedirs --> off
httpd_enable_homedirs --> off
mock_enable_homedirs --> off
mpd_enable_homedirs --> off
openvpn_enable_homedirs --> on
samba_create_home_dirs --> off
samba_enable_home_dirs --> off
sftpd_enable_homedirs --> off
sftpd_write_ssh_home --> off
spamd_enable_home_dirs --> on
ssh_chroot_rw_homedirs --> off
tftp_home_dir --> off
use_ecryptfs_home_dirs --> off
use_fusefs_home_dirs --> off
use_nfs_home_dirs --> off
use_samba_home_dirs --> off
xdm_write_home --> off
将个人用户网站功能策略设置为允许:
setsebool -P httpd_enable_homedirs=on 等号两边不能有空格
刷新浏览器访问linuxprobe用户的个人网站,果然成功了,奥利结。
4、增加密码安全验证
有时候并不希望所有人都可以留意访问到自己的个人网站,那就可以使用Apache密码口令验证功能增加一道安全防护吧。
使用htpasswd命令生成密码数据库(-c参数用于第一次生成):
htpasswd -c /etc/httpd/passwd test
New password:
Re-type new password:
Adding password for user test
编辑配置文件开启密码验证(具体参数见下):
vi /etc/httpd/conf.d/userdir.conf
编辑如下:
*将31-35行之间的内容替换成如下*
AllowOverride all
authuserfile /etc/httpd/passwd
authname "My privately Website"
authtype basic
require user test
重启服务
systemctl restart httpd
再次浏览页面,显示需要用户和密码登录,这样我们就成功了。