![用户登录/注销核算以强制执行最大会话时间?](https://linux22.com/image/1536950/%E7%94%A8%E6%88%B7%E7%99%BB%E5%BD%95%2F%E6%B3%A8%E9%94%80%E6%A0%B8%E7%AE%97%E4%BB%A5%E5%BC%BA%E5%88%B6%E6%89%A7%E8%A1%8C%E6%9C%80%E5%A4%A7%E4%BC%9A%E8%AF%9D%E6%97%B6%E9%97%B4%EF%BC%9F.png)
我想建立一个家庭系统,其中用户(即家教孩子)每天/每周/任何时候的计算机使用时间都有限制,超过该时间他们就会注销。只要他们还有“信用时间”,他们就可以根据需要登录和注销。
最初的想法是基于我始终在线的 Mac Mini(或 Synology NAS)设置某种远程用户登录,进行登录/注销记帐(某种 Radius 服务器?哪种?)
客户端计算机最好是 Linux 或 OSX(如果没有必要,我宁愿避免维护 Windows 计算机,因为我很久以前就不再使用 Windows 了)
我一直在研究如何配置事物,但我不清楚最大会话时间是否以某种方式强制执行 - 寻找设置类似事物的技巧/窍门/经验......
答案1
我认为没有理由不使用 SElinux 和 Bash。您可以使用 /etc/security/limits.conf 设置一些限制。SElinux 可以保证没有人可以编辑它,即使是 root 也可以。您可以在 /etc/profile 中添加 TMOUT=300 或类似的东西,以便在登录后一段时间后注销。此外,您也可以使用 Bash,例如在某个时间点执行某些操作:
H=$(date +%H) if (( 8 <= 10#$H && 10#$H < 13 )); then echo between 8AM and 1PM elif (( 13 <= 10#$H && 10#$H < 23 )); then echo between 1PM and 11PM else echo go to bed fi