在Linux系统安全实践中,PAM(Pluggable Authentication Modules)模块为权限验证提供了灵活的二次验证机制。本文将通过具体案例演示如何配置pam_exec模块实现用户登录时的二次认证。
场景说明:某企业要求所有管理员账户在登录时必须通过短信验证码验证。我们使用pam_exec模块调用外部脚本完成此需求。
配置步骤:
- 创建验证脚本
/usr/local/bin/sms_auth.sh:
#!/bin/bash
read -p "请输入短信验证码: " code
if [ "$code" = "123456" ]; then
exit 0
else
exit 1
fi
- 设置权限:
chmod +x /usr/local/bin/sms_auth.sh - 修改
/etc/pam.d/sshd文件,在auth部分添加:
auth required pam_exec.so /usr/local/bin/sms_auth.sh
- 重启ssh服务:
systemctl restart sshd
验证方法:尝试登录时,系统会提示输入验证码。输入正确验证码(123456)后可正常登录。
该方案通过PAM模块实现,具备良好的可扩展性,适用于多种二次验证场景,如指纹识别、硬件令牌等。

讨论