vlambda博客
学习文章列表

实现Apache打开软链接功能-禁止显示目录列表-用户认证


当一个目录下没有默认首页时,访问http://192.168.1.63禁止显示目录列表

显示目录的效果:

[root@Linux 1 ~]# cp -r/boot/grub2/ /var/www/html/bbs/

[root@Linux 1 ~]# ll /var/www/html/bbs/

总用量16

drwxr-xr-x.   2 root root   27 2月2 2018 grub

-rw-r--r--1 root root   26 11月19 10:22 index.html

[root@Linux 1 ~]# rm -rf /var/www/html/bbs/index.html

[root@Linux 1~]# vim /etc/httpd/conf/httpd.conf

Require all granted#取消注释

#注释以下4行

Require ip 192.168.1.63

Require not ip 192.168.1.103

[root@Linux 1 ~]# systemctl restart httpd

chown -R apache:apache /var/www/html/bbs/grub2/

当网站没有默认的首页的时候,直接访问显示网站更目录下的文件夹资源

实现Apache打开软链接功能-禁止显示目录列表-用户认证

取消网站目录下浏览文件夹资源

修改配置文件:

[root@Linux 1 ~# vim /etc/httpd/conf/httpd.conf# 修改红色标记内容

改:144  Options Indexes FollowSymLinks

为:144  #Options Indexes FollowSymLinks

[root@Linux 1 ~]# systemctl restart httpd

实现Apache打开软链接功能-禁止显示目录列表-用户认证

通过用户认证的方式,对网站下/usr/local/phpdata/目录进行保护

设置/usr/local/phpdata/目录,只能通过用户名密码方式访问。

[root@Linux 1 ~]# vim /etc/httpd/conf/httpd.conf

#在需要使用用户验证的目录的相关Directory段落添加以内容:

Alias /phpdata/ "/usr/local/phpdata /"

<Directory "/usr/local/phpdata /">

Options Indexes FollowSymLinks

AllowOverride None

#Require all granted#注释此行,并加入以下4行内容

authtype basic

authname "my web site"

authuserfile /etc/httpd/conf/passwd.secret

require valid-user

实现Apache打开软链接功能-禁止显示目录列表-用户认证

参数说明:

authtype basic

#authtype命令:指定认证类型为:basic。

authname "my web site "

#AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。

authuserfile /etc/httpd/conf/passwd.secret

#AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。

require命令

#指定哪些用户或组才能被授权访问。如:require user user1 user2(只有用户user1和user2可以访问)

require valid-user(在AuthUserFile指定的文件中任何用户都可以访问)

利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文

命令格式:htpasswd –cm 存放用户名和密码的文件名 用户名

[root@Linux 1 ~]# htpasswd -cm /etc/httpd/conf/passwd.secret tom

New password: 123456

Re-type new password: 123456

Adding password for user tom

注意:

#第一个生成用户名和密码,需要创建文件,因此需要加-c参数

#第二次创建用户,不能用-c,否则会把前面的用户覆盖了

[root@Linux 1 phpdata]# htpasswd -h #查看参数

-c:创建新文件(Create a new file.)

-m:强制对密码进行MD5加密(Force MD5 encryption of the password.)

[root@Linux 1 conf]# htpasswd -m /etc/httpd/conf/passwd.secret bob

New password: 123456

Re-type new password: 123456

Adding password for user bob

[root@Linux 1 conf]# cat /etc/httpd/conf/passwd.secret #查看密码文件内容

tom: WJicnaIz$ejqYMmcqukEMsAVEjLcKf.

bob: S8pXfxJh$tletPNMKd33WZXqdkSLFy0

测试:

[root@Linux 1~]# systemctl restart httpd

http://192.168.1.63/phpdata/

实现Apache打开软链接功能-禁止显示目录列表-用户认证