当 Linux 帐户是主导系统/权限时,如何将 samba 密码与本地 Linux 帐户同步?
这似乎是一个令人惊讶的复杂请求/要求。因为我已经在互联网上搜索了几周,但仍然没有找到任何导致我想要实现的场景的东西。
背景:
我需要运行一台 Linux 服务器作为特定应用程序的计算服务器、文件服务器和打印服务器。运行此服务器操作系统和应用程序需要更高级别的密码安全性和密码策略。那是:
- 最小密码长度 > 8
- 密码复杂性,必须包含:+UP-Char、+LC-Char、+Digit、+NonAlphanumeric-Char
- 密码历史记录 > 20
- 破解库字典
- 10 次错误登录尝试后自动(永久)锁定(ssh 和 samba 端)
- 密码最长期限为 180 天,如果密码应在 2 周内更改,则登录时会出现警告
- 密码最短期限为 1 天
每个用户都需要在该服务器上有一个本地 Linux 帐户,并具有用于 SSH 登录和 SAMBA 的密码。用户从 Windows 10 工作站访问 SAMBA,该工作站是外部自治 Active Directory 域的成员。因此,Windows 工作站可以按需通过 SMB/CIFS 连接到服务器,但不是该特定 SAMBA 服务器的域成员。
重要提示:SSH 登录的用户密码(本地 Linux 帐户)和远程 SAMBA 访问应该使用相同的密码,由用户自己通过“passwd”或其他单个命令设置,而不是由 Samba 设置(通过 smb/cifs)!
我试图在 SuSE SLES 12 SP4 基础上实现这一目标。
注意:我曾经在 SLES 11 服务器上实现了这一点,当时 PAM 模块“pam_smbpass.so”仍然是 SAMBA 包的一部分,与几个附加的 PAM 模块(如 pam_cracklib、pam_pwhistory 等)结合使用。但似乎是 SAMBA。无论出于何种原因,ORG 决定,他们将在 SAMBA 4 发布过程中删除 pam_smbpass.so。
现在的问题是:如何在给定的要求不再具有 pam_smbpass.so 的情况下重建/配置 Linux SSH+SAMBA 场景?
pam_winbind.so 似乎没有做同样的工作。其他 PAM 模块(如 pam_exec.so)似乎也无法完成这项工作。
现在我还有哪些选择?