pam_unix 中的 use_authtok 和 try_first_pass 或 use_first_pass 有什么区别?

pam_unix 中的 use_authtok 和 try_first_pass 或 use_first_pass 有什么区别?

文档fortry_first_passuse_first_pass听起来足够合理:

       try_first_pass
           Before prompting the user for their password, the module
           first tries the previous stacked module's password in case
           that satisfies this module as well.

       use_first_pass
           The argument use_first_pass forces the module to use a
           previous stacked modules password and will never prompt the
           user - if no password is available or the password is not
           appropriate, the user will be denied access.

try_first_pass如果有密码,则使用之前输入的密码,否则会出现提示。use_first_pass如果有密码,则使用之前输入的密码,否则失败。但还有一个use_authtok选择:

       use_authtok
           When password changing enforce the module to set the new
           password to the one provided by a previously stacked password
           module (this is used in the example of the stacking of the
           pam_cracklib module documented below).

use_authtok为了什么?它只是与 相同try_first_pass,还是与 相同use_first_pass,还是完全不同?

答案1

这就是我能够弄清楚的感谢安德鲁的评论,托马斯·姆拉兹的解释,并检查源代码

  • 不管文档暗示什么,try_first_pass当应用于pam_unix.so.

  • use_authtokuse_first_pass与应用于 时执行的操作完全相同pam_unix.so:如果存在先前输入的密码并且该密码满足先前模块的密码质量要求,则它使用先前输入的密码。否则,它绝对会失败。

  • 如果 或use_first_pass都不use_authtok应用于pam_unix.so,则行为取决于先前是否输入过密码。如果之前没有输入密码,pam_unix.so则会礼貌地提示输入密码。如果存在,则pam_unix.so表现为use_first_passuse_authtok已设置。

这都是为了pam_unix.so。请注意try_first_passuse_first_pass、 和use_authtok在其他 PAM 模块中的工作方式有所不同。

相关内容