对于两个用户,使用pam_exec.so和pam_unix.so自定义pamconfiguration

我有两个用户帐户(U1,U2),其身份validation模式等保存在数据库中。 这些账户可以被authentication的可能模式是:

  • 空密码
  • 自定义密码检查程序

U1和U2可以使用这两种authentication模式中的任意一种进行configuration。

从数据库中读取每个用户的属性后,我想生成一个工作/etc/pam.d/login文件,以允许任何用户login。

当两个用户都被允许使用空密码login时,我已经validation了下面的最小configuration是足够的:

 auth [success=1 default=ignore] pam_unix.so nullok auth requisite pam_deny.so auth required pam_permit.so 

在剩余的两个场景中,我正在寻找一组允许两个用户login的pamconfiguration规则。

  1. 如果两个用户都需要使用自定义程序进行身份validation
  2. 如果一个用户使用自定义validation模块,而另一个使用空密码login

对于1)/etc/pam.d/login添加到/etc/pam.d/login

 auth requisite pam_exec.so expose_authtok /usr/bin/custom-pam.sh 

其中custom-pam.sh是一个简单的脚本,以0(为简单起见)退出,从而允许指定的用户login。 但是,这并不像预期的那样工作。

 #!/bin/sh echo "Welcome $PAM_USER" exit 0 

对于2) ,有没有办法指定pam_exec.so只针对指定的用户,并让pam_unix.so处理其他用户的login?