服务器文件夹设置访问密码,Apache设置文件访问密码保护

文章目录

[隐藏]

Apache访问控制

生成HTTP AUTH密码

带组的访问控制列表

虽然大多数Web服务器内容创建为可供公众使用,但您可能希望将某些或所有网站限制为特定用户或组。 HTTP Auth允许您轻松创建这些限制。

本文介绍基于凭证和基于规则的Apache访问控制工具。

Apache访问控制

要为目录启用密码,请将以下行插入Apache配置文件的相应部分。 您还可以在.htaccess文件或虚拟主机配置部分中插入身份验证信息。 所需的指令是:

Apache配置文件:

AuthType Basic

AuthUserFile /var/www/example.com/.htpasswd

AuthName "Sign In Here To Gain Access To the Site"

Require valid-user

Apache在与客户端连接时用AuthType指令指定应使用的认证方法。 Basic类型要求密码作为明文在网络上发送。 因此,我们不建议使用此来保护敏感资源。

AuthUserFile指定存储密码的密码文件的路径(完整)。 在本例中,我们使用路径/var/www/example.com/.htpassword。 这是public_html文件夹之上的一个目录,防止意外暴露文件。 默认情况下,以.ht开头的所有文件在Apache的大多数默认配置中都不是Web可访问的,但不应假定。

AuthName指令包含用于浏览器通知用户服务器正在验证什么资源的提示。 该值是任意的。

Require valid-user告诉Apache任何有效的用户都可以进行身份验证。

生成HTTP AUTH密码

要生成密码,我们需要htpasswd工具。 对于许多发行版,此工具可能在您安装Apache本身时已安装。 Debian和Ubuntu用户必须使用以下命令安装apache2-utils软件包:

sudo apt-get install apache2-utils

要指定用户创建文件,执行以下命令:

htpasswd -c /var/www/example.com/.htpasswd username

在本例中,我们使用-c选项创建一个新的AuthUserFile。 该文件位于/var/www/example.com/.htpasswd,用户名为username。 htpasswd将提示您输入密码,然后确认密码。 如果文件存在,请用-c选项覆盖。

-b选项允许您把密码作为命令的最后一个参数,如下例所示:

htpasswd -b /srv/auth/.htpasswd username 5t1ck6

AuthUserFile类似如下:

/var/www/example.com/.htpasswd

hobby:isiA3Q4djD/.Q

admin:{SHA}x9VvwHI6dmgk9VTE0A8o6hbCw2s=

username:$apr1$vVzQJxvX$6EyHww61nnZr6IdQv0pVx/

带组的访问控制列表

在Require指令中,我们指定了valid-user。 这告诉Apache,任何可以对AuthUserFile中指定的用户进行身份验证的用户都可以访问该网站。 虽然可以为不同的资源维护单独的密码文件,但对于具有复杂身份验证需求的部署,这是很难维护的。

为了满足这一需求,Apache允许您使用单个AuthUserFile,包含需要向服务器进行身份验证的所有用户。 要将有效凭据集限制到.htpasswd文件中列出的特定用户子集,我们必须在Require配置参数中指定用户。 只有在Require user指令后指定的用户才能被允许访问指定的资源。 例如:

Apache配置文件选项:

Require user username admin

给定这个指令,用户username和admin将能够登录资源。 可以在Require行上指定任何用户子集。 Apache还提供了将用户组织成组的能力,然后允许基于组成员资格访问资源。 此设置的配置指令如下所示:

Apache配置文件:

AuthType Basic

AuthUserFile /srv/auth/.htpasswd

AuthGroupFile /srv/auth/.htgroup

Require group Authorized

在这个例子中,我们引用了相同的AuthUserFile,但是我们添加了一个指定用户组的AuthGroupFile。 组文件包含用户组列表和与每个组相关联的用户名。 htgroup文件(如htpasswd文件)可以位于文件系统上的任何位置。 为了清晰起见,我们建议htgroup与htpasswd文件在同一目录中。 这里是一个htgroup文件的例子:

/var/www/example.com/.htgroup:

Authorized: username username2

Team: admin hobby

给定此htgroup文件,只有用户username和username2将有权访问上面列出的资源。 组文件的语法遵循一个简单的[groupname]:[username 1] [username 2] […]。 您可以将您的AuthUserFile中的任何用户名作为特定资源所需的组条目。

Apache设置文件访问密码保护

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值