saslauthd 和 PAM:“打开的文件太多”错误 - saslauthd 重新启动解决了这个问题 - 哪里错了?

saslauthd 和 PAM:“打开的文件太多”错误 - saslauthd 重新启动解决了这个问题 - 哪里错了?

我有一个运行 Debian Squeeze 的 Postfix 邮件服务器。saslauthd 支持安全 SMTP 的 SASL 身份验证,而 saslauthd 依赖于 pam,而 pam 又依赖于 winbind。

这种模式似乎每隔几周就会重现一次:

  1. 最初,/var/log/auth.log 中没有错误 - postfix SMTP 运行良好
  2. 一周或更长时间后日志中出现错误:

    12 月 5 日 15:45:22 myhostname saslauthd[32586]: PAM 无法 dlopen(/lib/security/pam_winbind.so): /lib/security/pam_winbind.so: 无法打开共享对象文件:打开的文件过多 12 月 5 日 15:45:22 myhostname saslauthd[32586]: PAM 正在添加错误模块:/lib/security/pam_winbind.so 12 月
    5 日 15:45:22 myhostname saslauthd[32586]: PAM 无法 dlopen(/lib/security/pam_deny.so): /lib/security/pam_deny.so: 无法打开共享对象文件:打开的文件过多
    12 月 5 日 15:45:22 myhostname saslauthd[32586]: PAM 正在添加错误模块:/lib/security/pam_deny.so
    12 月 5 日15:45:22 myhostname saslauthd[32586]: PAM _pam_load_conf_file: 无法打开 /etc/pam.d/common-auth
    十二月 5 15:45:22 myhostname saslauthd[32586]: PAM 加载时出错(null) 十二月
    5 15:45:22 myhostname saslauthd[32586]: PAM _pam_init_handlers: 读取 /etc/pam.d/other 时出错
    十二月 5 15:45:22 myhostname saslauthd[32586]: PAM _pam_init_handlers: [严重错误 - 立即中止]
    十二月 5 15:45:22 myhostname saslauthd[32586]: 读取 PAM 配置文件时出错
    十二月 5 15:45:22 myhostname saslauthd[32586]: PAM pam_start: 无法初始化处理程序
    12 月 5 日 15:45:22 myhostname saslauthd[32586]: DEBUG: auth_pam: pam_start 失败: 严重错误 - 立即中止
    12 月 5 日 15:45:22 myhostname saslauthd[32586]: do_auth: 身份验证失败: [user=dteed] [service=smtp] [realm=] [mech=pam] [reason=PAM 启动错误]
    12 月 5 日 15:45:32 myhostname saslauthd[32586]: server_exit: master 已退出: 32586
    12 月 5 日 15:45:32 myhostname saslauthd[1696]: detach_tty: master pid 为: 1696
    12 月 5 日15:45:32 myhostname saslauthd[1696]: ipc_init: 正在监听套接字:/var/run/saslauthd/mux

此时身份验证将始终失败。可以在 testsaslauthd 中验证。只需重新启动 saslauthd 即可解决问题,并持续一两周。

我搜索了打开文件过多的错误,但找不到任何确切的信息来说明这是什么意思。它抱怨的某些 pam 模块无法打开,这与 saslauthd 处理 winbind 上的 SASL 身份验证的工作无关。

这是 /etc/pam.d/smtp :

account     required    pam_permit.so
auth        sufficient    pam_winbind.so debug
auth        required      pam_deny.so

我不想以调试(前台)方法运行 saslauthd。我认为我不需要更多 saslauthd 进程 - 我正在运行 5 个,这在以前的低功率服务器上已经足够了。安全 SMTP 是我们用户不广泛使用的选项,但每隔几分钟可能就会有一个连接使用它。

答案1

这似乎是 samba 的 winbind 中报告的一个错误,尽管是 saslauthd 发出了投诉。以下是错误报告:

https://bugzilla.samba.org/show_bug.cgi?id=7265

在发布此版本之前,一种解决方法是每隔几天(在 cron 中)重新启动 winbind 和 saslauthd。

相关内容