Linux

pam_unix 中的 use_authtok 和 try_first_pass 或 use_first_pass 有什麼區別?

  • January 31, 2022

和聽起來足夠合理的文件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_passuse_authtok已設置。

這都是為了pam_unix.so。請注意try_first_pass,use_first_passuse_authtok在其他 PAM 模組中的工作方式不同。

引用自:https://unix.stackexchange.com/questions/687772