用户认证 HOWTO

Peter Hernberg

Floris Lambrechts - 语言更改,各种小修复 (v0.8)。

2000-05-02

修订历史
修订 0.82003-02-20修订者:fl
语言更改,各种小修复
修订 0.52000-05-15修订者:ph
添加了关于保护 pam 的章节,添加了资源章节
修订 0.12000-05-02修订者:ph
初始版本

解释了用户和组信息是如何存储的,以及用户如何在 Linux 系统(PAM)上进行身份验证,以及如何保护您系统的用户身份验证。


目录
1. 介绍
1.1. 本文档的由来
1.2. 新版本
1.3. 反馈
1.4. 版权和商标
1.5. 致谢
1.6. 关于读者的假设
2. 用户信息在您的系统上的存储方式
2.1. /etc/passwd
2.2. 影子密码
2.3. /etc/group/etc/gshadow
2.4. MD5 加密密码
2.5. 理清思路
3. PAM (可插拔身份验证模块)
3.1. 为什么
3.2. 是什么
3.3. 如何
3.4. 获取更多信息
4. 保护用户身份验证
4.1. 强大的 /etc/pam.d/other
4.2. 禁用空密码用户的登录
4.3. 禁用未使用的服务
4.4. 密码破解工具
4.5. 影子密码和 MD5 密码
5. 整合所有内容
5.1. Apache + mod_auth_pam
5.2. 我们的示例
5.3. 安装 mod_auth_pam
5.4. 配置 PAM
5.5. 配置 Apache
5.6. 测试我们的设置
6. 资源
6.1. PAM
6.2. 通用安全
6.3. 离线文档
7. 结论

1. 介绍

1.1. 本文档的由来

当尝试向我现有的家庭网络添加一些(大部分是不必要的 :) )网络服务时,我一直遇到身份验证问题,所以我决定弄清楚身份验证在 Linux 系统上是如何工作的,编写一个 HOWTO,并将其称为我的高级项目。我希望本文档能帮助您理解系统管理中这个经常被遗忘但非常重要的方面。


1.2. 新版本

在我正确启动并运行我的域名之前,本文档的最新版本将可从 http://www.linuxdoc.org/ 获取。


1.3. 反馈

意见、更正、建议、批评和不明飞行物目击事件可以发送至 petehern@yahoo.com。


1.4. 版权和商标

(c) 2000 Peter Hernberg

本手册可以完整或部分复制,无需费用,但须遵守以下限制

  • 上述版权声明和本许可声明必须完整地保留在所有完整或部分副本上

  • 任何翻译或衍生作品在分发前必须经作者书面批准。

  • 如果您部分分发本作品,则必须包含获取本手册完整版本的说明,并提供获取完整版本的方式。

  • 在评论或其他作品中,可以复制少量部分作为插图或引文,而无需本许可声明,但须注明出处。出于学术目的,可以批准对这些规则的例外情况:请写信给作者并询问。这些限制是为了保护我们作为作者,而不是限制您作为学习者和教育者。本文档中的任何源代码(SGML 文档除外)均受 GNU 通用公共许可证约束,可通过 GNU 存档的匿名 FTP 获取。


1.5. 致谢

感谢我的家人容忍了我 18 年。感谢 Debian 团队制作了如此棒的发行版供我玩耍。感谢 CGR 付钱让我成为一名技术人员。感谢 Sandy Harris 的有益建议。最后,我要感谢方便面的制造商,因为我不知道没有它们我该如何生活。


1.6. 关于读者的假设

为了本文档的目的,假设读者可以熟练地在命令行执行命令并编辑文本配置文件。


2. 用户信息在您的系统上的存储方式

2.1. /etc/passwd

在几乎所有 Linux 发行版(以及商业 *nix 系统)上,用户信息都存储在/etc/passwd,一个文本文件中,其中包含用户的登录名、他们的加密密码、唯一的数字用户 ID(称为 uid)、数字组 ID(称为 gid)、可选的注释字段(通常包含诸如他们的真实姓名、电话号码等项目)、他们的主目录和他们首选的 shell。一个典型的条目/etc/passwd看起来像这样

  pete:K3xcO1Qnx8LFN:1000:1000:Peter Hernberg,,,1-800-FOOBAR:/home/pete:/bin/bash
  

如您所见,它非常简单明了。每个条目包含我上面描述的六个字段,每个字段用冒号分隔。如果用户身份验证像这样简单,就不需要这份 HOWTO 了。


2.2. 影子密码

查看您的/etc/passwd,您很可能实际看到的是这样的内容

  pete:x:1000:1000:Peter Hernberg,,,1-800-FOOBAR:/home/pete:/bin/bash
  

加密密码去哪儿了?在我告诉您它去哪儿之前,需要一些解释。

/etc/passwd文件包含有关所有用户的信息,包括他们的加密密码,所有用户都可以读取该文件,这使得任何用户都可以获取系统上每个人的加密密码。虽然密码已加密,但密码破解程序已广泛可用。为了应对日益增长的安全威胁,开发了影子密码。

当系统启用影子密码时,/etc/passwd中的密码字段被“x”替换,用户的真实加密密码存储在/etc/shadow中。因为/etc/shadow只有 root 用户可读,所以恶意用户无法破解其同伴用户的密码。/etc/shadow中的每个条目都包含用户的登录名、他们的加密密码以及一些与密码过期相关的字段。一个典型的条目看起来像这样

    pete:/3GJllg1o4152:11009:0:99999:7:::
   

2.3. /etc/group/etc/gshadow

组信息存储在/etc/group中。格式类似于/etc/passwd,条目包含组名、密码、数字 ID (gid) 和以逗号分隔的组成员列表的字段。/etc/group中的条目看起来像这样

   pasta:x:103:spagetti,fettucini,linguine,vermicelli
  

从密码字段中的“x”可以看出,组密码也可以被影子化。尽管组几乎从不拥有自己的密码,但值得注意的是,影子组密码信息存储在/etc/gshadow.


2.4. MD5 加密密码

传统上,unix 密码使用标准 crypt() 函数加密。(有关 crypt() 函数的更多信息,请参阅 crypt(3) 手册页。)随着计算机速度的提高,使用此函数加密的密码变得更容易破解。随着互联网的兴起,用于在多台主机上分发密码破解任务的工具变得可用。许多“较新”的发行版都带有使用更强大的 MD5 哈希算法加密密码的选项。(有关 MD5 哈希算法的更多信息,请查阅 RFC 1321。)虽然 MD5 密码不会消除密码破解的威胁,但它们会使破解您的密码变得更加困难。


2.5. 理清思路

如您所见,用户身份验证信息可以通过多种不同的方式存储在您的系统上(没有 MD5 加密的影子密码,/etc/passwd带有 MD5 加密的密码等)。像 loginsu 这样的程序是如何知道如何验证您的密码的?更糟糕的是,如果您想更改密码在系统上的存储方式怎么办?需要您密码的程序如何知道密码的存储方式不同了?PAM 就是答案。


3. PAM (可插拔身份验证模块)

可插拔身份验证模块是任何现代 Linux 发行版中用户身份验证的核心。


3.1. 为什么

在 Linux 的美好旧时代,如果程序(例如 supasswdloginxlock)需要验证用户身份,它只需从/etc/passwd读取必要的信息。如果需要更改用户密码,它只需编辑/etc/passwd。这种简单但笨拙的方法给系统管理员和应用程序开发人员带来了许多问题。随着 MD5 和影子密码变得越来越流行,每个需要用户身份验证的程序都必须知道如何在处理多种不同方案时获取正确的信息。如果您想更改用户身份验证方案,则必须重新编译所有这些程序。PAM 通过使程序能够透明地验证用户身份,而不管用户信息是如何存储的,从而消除了这种混乱。


3.2. 是什么

引用 Linux-PAM 系统管理员指南 中的话:“Linux-PAM 项目的目的是将特权授予软件的开发与安全且适当的身份验证方案的开发分离开来。这是通过提供一个函数库来实现的,应用程序可以使用该函数库来请求用户进行身份验证。” 使用 PAM,无论您的密码存储在 /etc/passwd 中还是香港的服务器上都无关紧要。当程序需要验证用户身份时,PAM 提供了一个库,其中包含适当身份验证方案的函数。由于此库是动态加载的,因此只需编辑配置文件即可完成身份验证方案的更改。

灵活性是 PAM 最强大的优势之一。PAM 可以配置为拒绝某些程序验证用户身份的权利,仅允许某些用户进行身份验证,在某些程序尝试进行身份验证时发出警告,甚至剥夺所有用户的登录权限。PAM 的模块化设计使您可以完全控制用户身份验证的方式。


3.2.1. 支持 pam 的发行版。

几乎所有流行的发行版都已经支持 PAM 一段时间了。以下是支持 PAM 的发行版的不完整列表

  • Redhat 自 5.0 版本起

  • Mandrake 自 5.2 版本起

  • Debian 自 2.1 版本起(2.1 版本部分支持 -- 2.2 版本完全支持)

  • Caldera 自 1.3 版本起

  • Turbolinux 自 3.6 版本起

  • SuSE 自 6.2 版本起

此列表肯定是不完整的,并且可能不准确。如果您有任何更正或补充,请发送至.


3.2.2. 安装 PAM

从头开始安装 PAM 是一个漫长的过程,超出了本 HOWTO 的范围。如果您的系统上未安装 PAM,则您可能正在运行非常旧版本的发行版,以至于有很多其他原因需要升级。如果您真的想自己动手,那么您肯定不是那种需要我任何帮助的人。由于所有这些原因,我将假设您已经安装了 PAM。


3.3. 如何

说够了,让我们深入研究。


3.3.1. PAM 配置文件

PAM 配置文件存储在/etc/pam.d/目录中。(如果您没有/etc/pam.d/目录,请不要担心,我将在下一节中介绍)让我们去那里看看。

  ~$ cd /etc/pam.d
  /etc/pam.d/$ ls
  chfn	chsh	login	other	passwd	su	xlock
  /etc/pam.d/$ 
  

您的系统中可能在此目录中包含的文件多一些或少一些,具体取决于您的系统上安装的内容。无论细节如何,您可能都看到了系统上每个验证用户身份的程序的文件。正如您可能已经猜到的那样,每个文件都包含以其命名的程序的 PAM 身份验证配置(除了other文件,我们稍后会讨论)。让我们看一下登录的 PAM 配置文件(为了简单起见,我对文件进行了精简)

  /etc/pam.d/$ cat login
  # PAM configuration for login
  auth       requisite  pam_securetty.so
  auth       required   pam_nologin.so
  auth       required   pam_env.so
  auth       required   pam_unix.so nullok
  account    required   pam_unix.so
  session    required   pam_unix.so
  session    optional   pam_lastlog.so
  password   required   pam_unix.so nullok obscure min=4 max=8
  

在我深入研究这个文件之前,我必须提到一些小事。


3.3.2. 一些小事

一小部分读者可能在想,“哦,不!我没有 /etc/pam.d 目录!您的发行版列表说我的发行版包含 PAM,但我找不到该目录。没有 PAM,我的生活空虚而毫无意义!我该怎么办?” 别担心,一切都还没有丢失。如果您知道您的发行版包含 PAM,但您没有/etc/pam.d/目录,那么您的 PAM 配置存储在/etc/pam.conf中。您的所有 PAM 配置都存储在一个文件中,而不是分布在多个文件中。这给 PAM 配置增加了一点曲折,但在 3.3.4 节中指出了适当的调整。


3.3.3. 配置语法

PAM 配置文件的语法如下

  type  control  module-path  module-arguments
  

以登录配置文件(见上文)为例,让我们看一下 PAM 配置文件的语法

PAM 配置令牌

type

type 令牌告诉 PAM 此模块要使用哪种类型的身份验证。相同类型的模块可以“堆叠”,要求用户满足多个要求才能通过身份验证。PAM 识别四种类型

account

确定是否允许用户访问服务,他们的密码是否已过期等。

auth

确定用户是否是他们声称的身份,通常通过密码,但也可能通过更复杂的方式,例如生物识别技术。

password

为用户提供一种更改其身份验证的方式。同样,这通常是他们的密码。

session

在用户通过身份验证之前和/或之后应完成的事情。这可能包括挂载/卸载用户主目录、记录他们的登录/注销以及限制/取消限制用户可用的服务等。

在登录配置文件中,我们看到了每种类型的至少一个条目。由于这是允许用户登录的程序(因此得名 :)),因此可以理解它需要访问所有不同类型的身份验证。

control

control 令牌告诉 PAM 如果此模块的身份验证失败应该怎么做。PAM 识别四种控制类型

requisite

未能通过此模块进行身份验证会导致立即拒绝身份验证。

required

失败也会导致拒绝身份验证,尽管 PAM 仍然会在拒绝身份验证之前调用为此服务列出的所有其他模块。

sufficient

如果此模块的身份验证成功,即使之前的 required 模块失败,PAM 也会授予身份验证。

optional

此模块是成功还是失败仅在其是此服务的唯一类型模块时才重要。

在登录的配置文件中,我们看到了几乎所有不同的控制类型。大多数 required 模块是 pam_unix.so(主要的身份验证模块),唯一的 requisite 模块是pam_securetty.so(确保用户在安全的控制台上登录),唯一的 optional 模块是pam_lastlog.so(检索有关用户最近登录信息的模块)。

module-path

module-path 告诉 PAM 要使用哪个模块以及(可选)在哪里找到它。大多数配置仅包含模块的名称,就像我们的登录配置文件中的情况一样。在这种情况下,PAM 在默认 PAM 模块目录中查找模块,通常是/usr/lib/security。但是,如果您的 Linux 发行版符合文件系统层次结构标准 (FHS),则 PAM 模块可以在/lib/security.

中找到

module-arguments


3.3.4. module-arguments 是要传递给模块的参数。每个模块都有自己的参数。例如,在我们的登录配置中,“nulok”(“null ok”,传递给 pam_unix.so 模块的参数,指示接受空白(“null”)密码(“ok”)。pam.conf

配置/etc/pam.conf如果您的 PAM 配置存储在/etc/pam.d/而不是/etc/pam.conf中,则 PAM 配置行会略有不同。所有配置都存储在中,而不是每个服务都有自己的配置文件,配置行的第一个令牌是服务名称。例如,:

    auth       required   pam_unix.so nulok
    

/etc/pam.d/login/etc/pam.conf:

    login	auth       required   pam_unix.so nulok
    

中的以下行将变为


中的以下行

除了这个微小的差异之外,所有其余的 PAM 配置语法都适用。


3.4. 获取更多信息

有关配置 PAM 和完整的 PAM 模块参考的更多信息,请查阅 Linux-PAM 系统管理员指南。本指南是关于 PAM 配置的全面且最新的参考。


4. 保护用户身份验证许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。

4.1. 强大的/etc/pam.d//etc/pam.d/other许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。中的所有文件都包含特定服务的配置。此规则的显著例外是文件。此文件包含任何没有自己配置文件的服务的配置。例如,如果(虚构的)xyz 服务尝试身份验证,PAM 将查找/etc/pam.d/xyz许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。文件。如果找不到,则 xyz 的身份验证将由许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。文件确定。由于许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。是 PAM 服务回退到的配置,因此确保其安全非常重要。我们将讨论


的两种安全配置,一种几乎是偏执狂,另一种则较为温和。

4.1.1. 偏执狂配置许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。一个偏执狂的

    auth	required	pam_deny.so
    auth	required	pam_warn.so
    account	required	pam_deny.so
    account	required	pam_warn.so
    password	required	pam_deny.so
    password	required	pam_warn.so
    session	required	pam_deny.so
    session	required	pam_warn.so
    

配置如下中,而不是每个服务都有自己的配置文件,配置行的第一个令牌是服务名称。例如,使用此配置,每当未知服务尝试访问四种配置类型中的任何一种时,PAM 都会拒绝身份验证(通过 pam_deny.so 模块),然后记录 syslog 警告(通过 pam_warn.so 模块)。除了 PAM 中的错误之外,此配置非常安全。这种残酷性的唯一问题是,如果您不小心删除了另一个服务的配置,可能会导致问题。如果您的


被错误地删除,则任何人都将无法登录!

4.1.2. 更友好的配置

    auth	required	pam_unix.so
    auth	required	pam_warn.so
    account	required	pam_unix.so
    account	required	pam_warn.so
    password	required	pam_deny.so
    password	required	pam_warn.so
    session	required	pam_unix.so
    session	required	pam_warn.so
    

这是一个不太苛刻的配置


此配置将允许未知服务进行身份验证(通过 pam_unix.so 模块),尽管它不允许更改用户密码。虽然它允许未知服务进行身份验证,但每当此类服务尝试身份验证时,它都会记录 syslog 警告。许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。

4.1.3. 选择一个许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。我强烈建议您实施第一个


配置,除非您有充分的理由不这样做。始终“默认安全”是一个好主意。如果您确实需要授予新服务身份验证特权,您可以简单地为该服务创建一个 PAM 配置文件。

4.2. 禁用空密码用户的登录中,而不是每个服务都有自己的配置文件,配置行的第一个令牌是服务名称。例如,:

   auth		required	pam_unix.so	nullok
   

在大多数 Linux 系统上,都有许多“虚拟”用户帐户,用于为某些系统服务(如 ftp、Web 服务器和邮件网关)分配特权。拥有这些帐户可以使您的系统更安全,因为如果这些服务受到威胁,攻击者将仅获得虚拟帐户可用的有限特权,而不是以 root 身份运行的服务的全部特权。但是,允许这些虚拟帐户登录特权存在安全风险,因为它们通常具有空白(空)密码。启用空密码的配置选项是“nullok”模块参数。您需要从允许登录的服务的任何“auth”类型的模块中删除此参数。这通常是登录服务,但也可能包括 rlogin 和 ssh 等服务。因此,

   auth		required	pam_unix.so
   

中的以下行应更改为

4.3. 禁用未使用的服务/etc/pam.d/查看许多 Linux 发行版附带的用户身份验证安全性不足。本节讨论使系统上的用户身份验证安全的一些方法。虽然这样做会使您的系统更安全,但不要天真地认为它们会使您无懈可击。中的文件,您可能会看到许多您不使用的程序的配置文件,甚至可能是一些您从未听说过的程序。虽然允许对这些服务进行身份验证可能不会打开任何巨大的安全漏洞,但最好拒绝它们进行身份验证。禁用这些程序的 PAM 身份验证的最佳方法是重命名这些文件。如果找不到以请求身份验证的服务命名的文件,PAM 将回退到(希望)非常安全的


。如果您稍后发现需要其中一个程序,您可以简单地将文件重命名为其原始名称,一切都将按预期工作。

4.4. 密码破解工具

虽然密码破解工具可能被攻击者用来危害系统,但系统管理员也可以使用它们作为主动工具来确保系统上密码的强度。“crack”和“John the Ripper”是两种最常用的密码破解工具。Crack 可能包含在您最喜欢的发行版中。John the Ripper 可以从 http://www.false.com/security/john/index.html 获取。针对您的密码数据库运行这些工具,您可能会对它们的结果感到惊讶。


此外,还有一个 PAM 模块,它利用 crack 库在每次用户更改密码时检查密码的强度。安装此模块后,用户只能将密码更改为符合最低密码强度的密码。

4.5. 影子密码和 MD5 密码


正如本文档的第一节中所讨论的,影子密码和 MD5 密码可以使您的系统更安全。在安装过程中,大多数现代发行版都会询问您是否要安装 MD5 和/或影子密码。除非您有充分的理由不这样做,否则您应该启用这些密码。从非影子/非 MD5 密码转换是一个复杂的过程,超出了本文档的范围。影子密码 HOWTO 已过时,但可能对您有所帮助。

5. 整合所有内容


在本节中,我将给出一个简单的示例,该示例应该有助于将上一节中的内容联系起来。

5.1. Apache + mod_auth_pam


作为我们的示例,我们将安装和配置 mod_auth_pam,这是一个 Apache 模块,允许您使用 PAM 验证您的 Web 服务器用户身份。为了本示例的目的,我假设您已安装 Apache。如果尚未安装,您应该可以从您的发行商处找到安装包。

5.2. 我们的示例我们的目标是配置我们 Web 服务器的受限区域,即family/


目录,以通过 PAM 验证用户身份。此目录包含私人家庭信息,并且应该仅对用户组 family 的成员可访问。

5.3. 安装 mod_auth_pam

   ~# tar xzf mod_auth_pam.tar.gz
   ~# cd mod_auth_pam-1.0a
   ~/mod_auth_pam-1.0a# make
   ~/mod_auth_pam-1.0a# make install
   

首先,您需要从 http://blank.pages.de/pam/mod_auth_pam/ 下载 mod_auth_pam。以下命令将编译 mod_auth_pam(您必须以 root 身份登录)

   ~# /etc/init.d/apache restart
   

如果您在安装 mod_auth_pam 模块时遇到任何问题,请确保您已安装发行版的 apache-dev 包。安装 mod_auth_pam 后,您需要重新启动 Apache。通常可以通过键入以下命令重新启动 Apache(同样,您必须是 root 用户)

5.4. 配置 PAMApache 的 PAM 配置存储在/etc/pam.d/httpd中。默认配置(在您安装 mod_auth_pam 时安装)是安全的,但它使用了一个模块(pam_pwdb.soApache 的 PAM 配置存储在),该模块可能在许多系统上不可用。(此外,从头开始配置它会很有趣!)因此,删除


文件,然后从新的文件开始。

5.4.1. 决定如何配置 PAM如果我们要配置 PAM 如何处理 Apache 的身份验证请求,我们需要弄清楚我们需要 PAM 检查什么。首先,我们希望 PAM 确保用户的密码与标准 Unix 密码数据库中的密码匹配。这听起来像是 'auth' 类型和pam_unix.soApache 的 PAM 配置存储在模块。我们希望将模块的控制类型设置为“required”,以便在没有正确密码的情况下身份验证将失败。这是我们的

     auth	required	pam_unix.so
     

的第一行如果我们要配置 PAM 如何处理 Apache 的身份验证请求,我们需要弄清楚我们需要 PAM 检查什么。首先,我们希望 PAM 确保用户的密码与标准 Unix 密码数据库中的密码匹配。这听起来像是 'auth' 类型和其次,我们必须确保用户帐户有效(即他们的密码未过期或任何类似的糟糕情况)。这是 'account' 类型,也由Apache 的 PAM 配置存储在模块提供。同样,我们将此模块的控制类型设置为“required”。添加此行后,我们的

     auth	required	pam_unix.so
     account	required	pam_unix.so
     

配置如下所示


它不是很复杂,但它确实完成了工作。它应该是学习如何配置 PAM 服务的一个好的开始。

5.5. 配置 Apache我们的目标是配置我们 Web 服务器的受限区域,即现在 PAM 已配置为验证 Apache 的请求,我们将配置 Apache 以正确利用 PAM 身份验证来限制对目录的访问。为此,请将以下行添加到您的httpd.conf(通常存储在/etc/apache/):

    <Directory /var/www/family>
    AuthPAM_Enabled on
    AllowOverride None
    AuthName "Family Secrets"
    AuthType "basic"
    require group family
    </Directory>
    

/etc/httpd您可能需要替换/var/www/为 Web 文档的默认位置,通常是/home/httpd/。无论在哪里,您都需要创建family

目录。


在我们测试我们的设置之前,我将花一点时间来解释您刚刚输入的 Apache 配置。<Directory> 指令用于封装此目录的配置数据。在此指令中,我们启用了 PAM 身份验证(“AuthPAM_enabled on”),关闭了对此配置的任何覆盖(“AllowOverride none”),将此身份验证区域命名为“家庭秘密”(“AuthName "Family Secrets"”),将 http 身份验证(不是 PAM 身份验证)类型设置为默认值(“AuthType "basic"”),并要求用户组 family(“require group family”)。

5.6. 测试我们的设置


现在我们已经正确设置了所有内容,是时候享受我们的成功了。启动您喜欢的 Web 浏览器并访问 http://your-domain/family/ (将 your-domain 替换为您的域名)。您现在是一名超级身份验证器了!

6. 资源


有许多在线和离线资源,您可以在其中找到有关用户身份验证的更多信息。如果您知道任何应该添加到此列表中的资源,请给我发消息至


Linux-PAM 应用程序开发人员手册


Packetstorm

6.3. 离线文档可以从您系统的手册页中收集大量信息。以下是一些与用户身份验证相关的手册页。括号中的数字是指手册页部分。要查看 passwd(5) 手册页,您需要输入.

  • man 5 passwd(5)

  • passwd(3)

  • crypt(5)

  • pam.d(5)

  • group(5)


shadow

7. 结论.