如何检查 Linux 中认证方法是否启用

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个实验中,你将学习如何检查 Linux 系统上启用了哪些认证方法。我们将探索管理用户认证和授权方式的关键配置文件。

你将首先检查位于 /etc/pam.d/ 的 PAM(可插拔认证模块,Pluggable Authentication Modules)配置文件,以了解认证的基本框架。接下来,你将检查 /etc/sssd/sssd.conf 处的 SSSD(系统安全服务守护进程,System Security Services Daemon)配置文件,查看是否为远程身份源进行了配置。最后,你将检查 /etc/nsswitch.conf 中的 NSS(名称服务切换,Name Service Switch)配置,以确定系统查找用户和组信息的顺序。在本实验结束时,你将对在 Linux 系统上查找活动认证方法的位置有一个基本的了解。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") subgraph Lab Skills linux/ls -.-> lab-558781{{"如何检查 Linux 中认证方法是否启用"}} linux/cat -.-> lab-558781{{"如何检查 Linux 中认证方法是否启用"}} end

使用 ls /etc/pam.d 检查 PAM 配置

在这一步中,我们将开始探索 Linux 如何处理用户认证和授权。一个关键组件是 PAM,即可插拔认证模块(Pluggable Authentication Modules)。PAM 提供了一种灵活的方式来管理用户登录、更改密码和访问系统资源的方式。

可以将 PAM 视为一组规则,应用程序(如登录界面或 sudo)在允许用户执行操作之前会参考这些规则。这些规则在配置文件中定义,主要位于 /etc/pam.d/ 目录中。

让我们来看看这个系统上的 PAM 配置文件。我们将使用 ls 命令,该命令用于列出目录内容。

如果终端尚未打开,请打开它。记住,你可以在桌面左侧找到 Xfce 终端 图标。

输入以下命令并按回车键:

ls /etc/pam.d/

你将看到一个文件列表。每个文件通常对应一个使用 PAM 进行认证的服务或应用程序。例如,你可能会看到像 common-authloginsudosshd 等文件。

atd
chfn
chsh
common-account
common-auth
common-password
common-session
common-session-noninteractive
cron
... (output may vary)

这些文件包含每个服务的特定 PAM 规则。我们暂时不会深入探讨文件内容的细节,但了解这些配置的存储位置很重要。

理解 PAM 对于管理 Linux 中的用户访问和安全至关重要。通过列出 /etc/pam.d/ 的内容,你已经迈出了了解该系统认证配置方式的第一步。

点击 继续 进入下一步。

使用 cat /etc/sssd/sssd.conf 验证 SSSD 配置

在这一步中,我们将查看与用户管理和认证相关的另一个重要组件:SSSD。SSSD 即系统安全服务守护进程(System Security Services Daemon)。它是一个提供对远程认证和身份源(如 LDAP、Active Directory 或 FreeIPA)访问的服务。

SSSD 可以缓存凭证和信息,这有助于提高性能,并且即使用户与远程源的网络连接暂时不可用,也能进行认证。

SSSD 的主要配置文件通常位于 /etc/sssd/sssd.conf。我们将使用 cat 命令来显示该文件的内容。cat 命令是一个用于显示文件内容的简单实用工具。

在终端中输入以下命令并按回车键:

cat /etc/sssd/sssd.conf

你将看到 SSSD 的配置细节。该文件的内容取决于 SSSD 是否配置为连接到任何外部身份源。在基本系统中,该文件可能内容很少或包含默认设置。

[sssd]
domains =
config_file_version = 2
services = nss, pam

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

此输出展示了 sssd.conf 文件的基本结构。[sssd] 部分包含全局设置,services 行表明 SSSD 正在为 nss(名称服务切换,Name Service Switch)和 pam 提供服务。[nss][pam] 部分包含特定于这些服务的设置。

即使 SSSD 未针对远程源进行完整配置,sssd.conf 中它的存在和基本配置也表明系统已设置为可能使用它进行认证和身份查找。

检查此文件有助于你了解系统是否配置为使用 SSSD 以及它与哪些服务集成。

点击 继续 进入下一步。

使用 cat /etc/nsswitch.conf 检查 NSS 配置

在这个入门实验的最后一步,我们将检查名称服务切换(Name Service Switch,NSS)配置。NSS 是 Linux 系统确定从何处查找用户、组、主机名和其他网络相关数据信息的关键部分。

当程序需要查找用户信息(如用户 ID 或主目录)时,它会参考 NSS 配置,以了解要检查哪些数据源以及检查的顺序。这些数据源可以包括本地文件(如 /etc/passwd/etc/group)、DNS、LDAP 或像 SSSD(我们刚刚查看过)这样的服务。

NSS 的配置文件是 /etc/nsswitch.conf。我们将再次使用 cat 命令来查看其内容。

在终端中输入以下命令并按回车键:

cat /etc/nsswitch.conf

你将看到指定不同类型信息使用哪些数据源的行。每行以信息类型(例如 passwdgrouphosts)开头,后面跟着一个冒号和要检查的数据源列表。

## /etc/nsswitch.conf
#
## Example configuration of GNU Name Service Switch functionality.
## If you have the `glibc-doc-reference' and `info' packages installed, try:
## `info libc "Name Service Switch"' for information.

passwd:         compat systemd
group:          compat systemd
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

在这个示例输出中:

  • passwd: compat systemd 表示在查找用户信息时,系统应首先检查由 compat 配置的数据源(通常指像 /etc/passwd 这样的传统文件),然后检查 systemd
  • hosts: files dns 表示在解析主机名时,系统应首先检查本地 /etc/hosts 文件(files),然后使用 DNS。

每行中数据源的顺序很重要,因为系统会按顺序检查这些数据源,直到找到所需信息。

理解 nsswitch.conf 有助于你排查与用户登录、主机名解析和其他身份相关问题,它会向你展示系统查找这些信息的顺序。

你现在已经简要了解了 Linux 中与用户管理和认证相关的三个关键领域:PAM、SSSD 和 NSS。这是理解系统如何处理身份和访问的基础步骤。

点击 继续 完成本实验。

总结

在本实验中,我们通过检查关键配置文件,开始探索 Linux 如何管理用户认证。首先,我们使用 ls /etc/pam.d/ 列出了可插拔认证模块(Pluggable Authentication Modules,PAM)的配置文件,这些文件定义了各种服务和应用程序的认证规则。这让我们了解到系统中核心认证策略的存储位置。

接下来,我们尝试使用 cat 命令查看系统安全服务守护进程(System Security Services Daemon,SSSD)位于 /etc/sssd/sssd.conf 的配置文件,从而开始对其进行研究。SSSD 是与远程身份和认证源集成的关键服务,检查其配置有助于确定系统是否以及如何配置为针对外部目录进行认证。