用户密码重复使用限制策略

用户密码重复使用限制策略

  • 配置文件目录
/etc/pam.d/

在Linux系统中,/etc/pam.d目录包含了许多与PAM(Pluggable Authentication Modules)相关的配置文件。PAM是一种用于统一管理用户认证的机制,它允许不同的应用程序使用不同的认证方法。

在/etc/pam.d目录中,每个文件都代表一个特定的PAM服务,文件名就是服务的名称。这些文件包含了针对该服务的PAM配置,用于定义该服务如何进行用户认证。例如,/etc/pam.d/su文件是针对su命令的PAM服务配置,/etc/pam.d/login文件是针对登录命令的PAM服务配置。

这些文件的语法相同,只是包含了针对不同服务的特定配置。每个文件的格式大致相同,一般包括以下几部分:

  1. 模块路径:指定PAM模块的路径,用于加载对应的模块。
  2. 参数:指定模块的参数,用于配置模块的行为。
  3. 选项:指定模块的选项,用于配置模块的参数。
  4. 回调函数:指定模块的回调函数,用于处理认证请求。

在/etc/pam.d目录中,还有一些以system-auth等命名的通用配置文件,它们可以被其他配置文件引用。这些通用配置文件包含了针对系统级服务的PAM配置,可以在需要时被其他配置文件继承和覆盖。

总之,/etc/pam.d目录是Linux系统中管理PAM机制的重要目录之一,它包含了针对不同服务和应用程序的PAM配置文件。

  • 配置文件介绍
/etc/pam.d/system-auth

system-auth是一个PAM(Pluggable Authentication Modules)配置文件,它位于/etc/pam.d/目录下。PAM是Linux系统中用于统一管理用户认证的机制,它允许系统管理员为各种应用程序和系统服务配置一致的认证方式。

system-auth文件用于统一管理系统的用户认证,它包含了多个PAM模块的配置,这些模块按照从上往下的顺序依次调用。每个模块都有其特定的功能,例如身份验证、密码检查、账户管理等。

具体来说,system-auth中的每个认证过程都由一个PAM模块完成,每个模块都有其特定的功能和参数设置。以下是一些常见的PAM模块和其功能:

  1. auth模块:用于身份验证,可以要求用户输入密码或其他身份信息。
  2. account模块:用于账户管理,可以检查账户是否过期、是否允许登录等。
  3. password模块:用于密码管理,可以要求用户设置或更改密码。
  4. session模块:用于管理会话,可以设置会话的初始化和结束操作。

system-auth文件中,每个模块的配置都以行为单位进行定义,每行的格式如下:

module-type control-flag module-name arguments

其中,module-type指定模块类型,如authaccount等;control-flag指定模块的行为,如requiredsufficient等;module-name指定模块的名称,如pam_unix.sopam_env.so等;arguments指定传递给模块的参数。

  • 简单示例
#%PAM-1.0  
# 这一行指定了PAM配置文件格式的版本。  
  
# 身份验证,必需的模块:pam_env.so,读取环境变量。  
auth       required     pam_env.so readenv=1  
# 身份验证,必需的模块:pam_env.so,读取环境变量,从指定文件(/etc/default/locale)中读取。  
# 这允许系统对不同用户使用不同的语言设置。  
auth       required     pam_env.so readenv=1 envfile=/etc/default/locale  
  
# 账户管理,必需的模块:pam_permit.so,允许所有用户登录系统。  
account    required     pam_permit.so  
  
# 账户管理,必要的模块:pam_cap.so,检查用户帐户的权限。  
account    requisite     pam_cap.so  
  
# 账户管理,充分的模块:pam_unix.so,尝试使用第一次通过的密码或认证令牌进行身份验证。  
account    sufficient    pam_unix.so try_first_pass use_authtok  
  
# 身份验证,包含system-auth文件,该文件包含其他身份验证要求的额外PAM配置。  
# 这允许通过分割不同的身份验证要求到单独的文件中来配置更加模块化和可扩展的配置。  
auth       include      system-auth

介绍示例

找到同时有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面)。

password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5

#password:这是PAM模块的名称,表明这是一个密码验证的配置。
#sufficient:这个关键字表示如果这个模块验证成功,那么认证就算是成功了,后续的模块将不再被执行。
#pam_unix.so:这是用于密码验证的模块。它使用SHA-512哈希算法对密码进行加密,并允许空密码(nullok)。它会首先尝试使用用户提供的密码(tryfirstpass),并使用自动提供的密码(useauthtok)。
#Sha512:这是密码加密的算法,表示密码会被SHA-512哈希算法加密。
#shadow:这个关键字表示密码存储在影子密码文件中(/etc/shadow)。
#nullok:这个关键字表示允许空密码。
#tryfirstpass:这个关键字表示在调用此模块之前,先尝试使用用户提供的密码。
#useauthtok:这个关键字表示使用自动提供的密码。
#remember=5:这个参数表示保存最近用过的5个密码,这些密码会被保存在/etc/security/opasswd文件中。

参考:
Linux 系统密码策略设置_try_first_pass-CSDN博客

你可能感兴趣的:(java,服务器,数据库)