这文档fortry_first_pass
和use_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_authtok
use_first_pass
与应用于 时执行的操作完全相同pam_unix.so
:如果存在先前输入的密码并且该密码满足先前模块的密码质量要求,则它使用先前输入的密码。否则,它绝对会失败。如果 或
use_first_pass
都不use_authtok
应用于pam_unix.so
,则行为取决于先前是否输入过密码。如果之前没有输入密码,pam_unix.so
则会礼貌地提示输入密码。如果存在,则pam_unix.so
表现为use_first_pass
或use_authtok
已设置。
这都是为了pam_unix.so
。请注意try_first_pass
、use_first_pass
、 和use_authtok
在其他 PAM 模块中的工作方式有所不同。