3.1.3.2. 控制标识旗(Control Flag)
所有的 PAM 模块在被调用后都会产生一个成功或失败的结果。控制标识旗会指示 PAM 根据结果下一步怎么办。模块可以以特定的顺序进行堆积排列,控制标识旗决定一个特定模块对用户验证成功或失败整个过程的重要性。
有四个预先定义好的控制标识旗:
required — 要使验证过程继续,这个模块的结果必须是成功。如果这一步的测试失败,用户不会马上被通知,他们会在所有模块的测试都完成后才会被通知。
requisite — 要使验证可以继续进行,这个模块的结果必须是成功。然而,如果这一步测试失败,用户会被马上通知,而通知的信息中包括了第一个失败了的 required或requisite 模块测试。
sufficient — 如果模块验证失败,其结果就不会被理会。但是,如果一个被标识为 sufficient 的模块成功 并且 前面没有任何标识为 required 的模块验证失败,那么用户就通过验证可以使用这个服务,无需其它任何验证结果。
optional — 模块结果不被理会。被标识为 optional 的模块只有在这个界面中没有引用其它模块时才成为验证成功所必须的。
required 模块被调用的顺序并不重要。只有控制标识旗为 sufficient 和 requisite 的模块的调用顺序才变得重要。
PAM 现在可使用一个更新的、可以进行更准确控制的控制标识旗语法。
pam.d man page 和 PAM 的文件编辑位于 /usr/share/doc/pam-<version-number>/ 目录下,其中的 <version-number> 是你系统上的 PAM 的版本号,这里相信描述了这个更新的语法。