头图

解决Ubuntu 22中"PAM unable to dlopen(pam_tally2.so)"错误的步骤

在Ubuntu 22.04 LTS中,如果你遇到PAM unable to dlopen(pam_tally2.so)这个错误信息,这通常意味着你的系统尝试加载一个已不再支持的PAM(Pluggable Authentication Modules)模块。pam_tally2模块已经被弃用,取而代之的是更现代且功能更强的pam_faillock模块。下面将详细介绍如何解决这个问题。

1. 检查是否存在pam_tally2.so

首先,你需要确认系统是否仍然存在pam_tally2.so文件。使用以下命令来搜索:

sudo find / -name pam_tally2.so

如果找到该文件,说明系统中可能仍有配置引用了它。接下来需要定位这些配置并进行更新。

2. 更新PAM配置以使用pam_faillock

编辑/etc/pam.d/common-auth文件,替换或注释掉所有涉及pam_tally2的行,并添加pam_faillock相关的设置。打开文件可以使用文本编辑器如nano:

sudo nano /etc/pam.d/common-auth

然后,在文件中添加如下内容:

# 开启审计日志记录
auth required pam_faillock.so preauth silent audit deny=5 unlock_time=900
# 使用标准Unix认证方式
auth [success=1 default=bad] pam_unix.so
# 当认证失败时触发锁定机制
auth [default=die] pam_faillock.so authfail audit deny=5 unlock_time=900
# 成功认证后重置失败计数
auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=900
# 如果以上均未成功,则拒绝访问
auth required pam_deny.so
  • deny=5 表示允许用户最多连续输错密码5次。
  • unlock_time=900 表示账户被锁定的时间为900秒(即15分钟)之后自动解锁。

确保上述配置正确无误后保存退出。

3. 重启服务使更改生效

完成上述修改后,建议重启系统以确保所有的PAM更改都能正常生效。也可以选择仅重启相关服务,比如SSH服务等,但全面重启是确保一切就绪的最佳做法。

sudo reboot

或者针对特定服务如SSH:

sudo systemctl restart ssh

通过以上步骤,你应该能够解决由于pam_tally2模块不兼容所导致的问题,并成功迁移到新的pam_faillock模块上。记得定期检查安全策略,保持系统的最新状态,以防止潜在的安全威胁。🌟


<font color="red">注意:</font> 在执行任何配置更改之前,请备份原始配置文件,以便出现问题时可以恢复。此外,确保你对PAM和Linux安全性有足够的了解,或者在有经验的人士指导下操作。这样做可以帮助避免意外地破坏系统的登录功能。😊


蓝易云
4 声望3 粉丝