Linux
pam_unix 中的 use_authtok 和 try_first_pass 或 use_first_pass 有什麼區別?
和聽起來足夠合理的文件:
try_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
,還是完全不同?
多虧了Andrew 的評論、Tomáš Mráz 的解釋以及對原始碼的檢查,以下是我能夠弄清楚的:
- 儘管文件暗示了什麼,
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 模組中的工作方式不同。