Security

如何在 pam 策略中為不同的使用者或組設置不同的身份驗證要求?

  • March 11, 2021

我正在嘗試建立一個既安全又方便的 linux 開發環境,在設置了無密碼登錄和 2-factor authenticatedpam_u2f之後,我有了創建具有不同身份驗證要求的不同使用者帳戶的想法。

在位於 的配置文件中/etc/pam.d/,身份驗證方法往往與使用者/組無關,例如:

auth required pam_u2f.so  authfile=/etc/my_yubikeys cue

您可以指定使用者或組,例如管理員帳戶或組成員wheel需要 2 個登錄因素(密碼和其他),而其他使用者需要一個?

給定特定使用者標準,您可以使用該pam_succeed_if模組跳過堆棧中的其他 PAM 模組。例如,您可以創建一個組noyubikey並將以下內容添加到您的 PAM 配置中:

auth [success=1 default=ignore] pam_succeed_if.so quiet user ingroup noyubikey
auth required pam_u2f.so  authfile=/etc/my_yubikeys cue

更新以回答您的問題:

我可以使用它來要求多種身份驗證方法,其中任何一種都是可選的。有點像“有 3 種可能的身份驗證方法,但您需要使用其中任何 2 種”

這應該可以通過子堆棧和自定義控制項實現。例如,您可能需要這樣的子堆棧:

[success=ignore default=1] # first module
[success=done default=1] # second module if the first one succeeded
[success=ignore default=die] # second module, if the first one failed
[success=done default=die] # third module now has to succeed

注意:為了清楚起見,我只顯示控制項。

您希望在此處使用子堆棧,因為它將完成/死亡操作與堆棧的其餘部分隔離開來。

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