将并发login限制在LDAP Linuxnetworking上的多个桌面上?

我怎样才能限制一个用户帐户同时login到一个私有的,所有Linux LDAPauthentication的networking中的台式机的数量?

以下是预防的scheme:具有有效帐户的用户在同一个帐户上login到10个不同的桌面,以便他可以与他的9个朋友玩游戏; 这些朋友都没有在networking上有效的帐户。

服务器是带OpenLDAP的RHEL 5,桌面是Fedora 11(可用时是CentOS 5.4)。 所有桌面login都通过服务器上的LDAP。

注意:在一机器上限制并发login可以通过/etc/security/limits.conf maxlogins来完成,但是在这种情况下这是没用的。

另外请注意:在具有Active Directory的Windowsnetworking上,UserLock和LimitLogin等软件可以完成此操作; 但是这个networking没有Windows,也没有AD服务器。

编辑:我知道LDAP本身不能做到这一点; 如果有一个成熟的,经过充分testing的附加产品,类似于上述基于Windows的产品,那么这将是一个好消息。 我甚至会考虑非免费 /非自由的解决scheme。

search后,它看起来不像LDAP或Kerberos会做到这一点。 显然,在LDAP中没有它的属性,并且从LDAP的angular度来看,它确实没有办法工作。 没有从LDAP注销,所以它永远不能减lesslogin计数。

鉴于此,看来解决scheme必须是特设的。

您将需要一个监视/var/run/utmp或每台机器上的命令w (显示当前login的用户),并通过某种机制(例如nfs mount + text file)将其报告给中央服务器。

然后,你需要一个login脚本,如果用户已经超出了并发login的限制,这个login脚本就会被踢出去。 login脚本将从中央服务器读取当前login计数。 或者,您可以根据从中央服务器检索到的login计数值,在/etc/security/limits.conf拥有一个修改maxlogins的服务。

maxlogins = $total_logins - $current_logins

基本上,最重要的考虑因素是用户没有权限自己更改login计数,也可以手动更改值以允许更多login。