如何在单个用户帐户一次登录的私有全
Linux LDAP身份验证网络中限制桌面计算机的数量?
以下是要防止的情况:拥有有效帐户的用户在同一帐户登录到10个不同的桌面,以便他可以与他的9个朋友一起玩游戏;这些朋友都没有在网络上有效的帐户.
服务器是带有OpenLDAP的RHEL 5,桌面是Fedora 11(可用时将是CentOS 5.4).所有桌面登录都是通过服务器上的LDAP进行的.
注意:可以使用/etc/security/limits.conf中的maxlogins来限制单个计算机上的并发登录,但这在所述方案中是无用的.
另请注意:在具有Active Directory的Windows网络中,UserLock和LimitLogin等软件可以实现此目的;但是这个网络没有Windows,也没有AD服务器.
编辑:我意识到LDAP本身不能做到这一点;如果有一个成熟的,经过良好测试的附加产品,类似于前面提到的基于Windows的产品,那么这将是一个好消息.我甚至会考虑非免费/非自由解决方案.
解决方法
搜索后看起来不像LDAP或Kerberos会这样做.显然,在LDAP中没有它的属性,并且实际上没有办法从LDAP角度工作.没有从LDAP注销,因此永远无法减少登录计数.
鉴于此,似乎解决方案必须是临时的.
您需要在每台计算机上监视/ var / run / utmp或命令w(显示当前登录的用户)的服务,并通过某种机制(例如,nfs mount文本文件)将其报告给中央服务器.
然后,如果用户超出了并发登录的限制,您将需要一个可以将用户踢出的登录脚本.登录脚本将从中央服务器读取当前登录计数.或者,您可以根据从中央服务器检索的登录计数值修改/etc/security/limits.conf中的maxlogins.
maxlogins = $total_logins – $current_logins