限制 LDAP Linux 网络上多个桌面的并发登录?

限制 LDAP Linux 网络上多个桌面的并发登录?

如何限制单个用户帐户同时登录的私有全 Linux LDAP 认证网络中的台式机数量?

需要防止出现以下情况:具有有效帐户的用户使用同一个帐户登录 10 个不同的桌面,以便与 9 个朋友一起玩游戏;但这些朋友在网络上都没有有效帐户。

服务器是带有 OpenLDAP 的 RHEL 5,桌面是 Fedora 11(CentOS 5.4 可用时将为 CentOS 5.4)。所有桌面登录均通过服务器上的 LDAP 进行。

注意:限制并发登录单身的maxlogins机器可以在内完成/etc/security/limits.conf,但这在所述场景中是无用的。

另请注意:在具有 Active Directory 的 Windows 网络上,UserLock 和 LimitLogin 等软件可以实现此目的;但该网络没有 Windows 和 AD 服务器。

编辑:我意识到 LDAP 无法独自完成此任务;如果有成熟的、经过良好测试的附加产品,类似于上述基于 Windows 的产品,那么这将是个好消息。我甚至会考虑非免费/非-自由解决方案。

答案1

搜索后发现 LDAP 或 Kerberos 似乎不会这样做。显然 LDAP 中没有它的属性,从 LDAP 的角度来看,它确实无法工作。LDAP 没有注销功能,因此它永远无法减少登录计数。

鉴于此,看来解决方案必须是临时的。

您需要一个服务来监控/var/run/utmp或执行每台机器上的命令w(显示当前登录的用户),并通过某种机制(例如,nfs mount + 文本文件)将其报告给中央服务器。

然后,您需要一个登录脚本,当用户超出并发登录限制时,该脚本会将用户踢出。登录脚本将从中央服务器读取当前登录计数。或者,您可以拥有一个服务,根据从中央服务器检索到的登录计数值修改maxlogins登录/etc/security/limits.conf

maxlogins = $total_logins - $current_logins

基本上,最重要的考虑是用户无权自己更改登录计数,或者他们只能手动更改该值以允许更多登录。

相关内容