假设某人因为每天晚上在 IRC 上聊天到凌晨 3 点的坏习惯而失眠。这完全毁了他的生活,因为他无法按时起床参加考试,因为他每天都会精疲力竭,感到沮丧。
该人意识到了这种不良行为,并愿意接受任何帮助,包括在他自己的计算机上安装软件并授予我安装该软件的管理员权限。
您是否知道有这样一种软件,其理想功能是:
- 会阻止在特定时间范围内使用计算机,比如晚上 11 点至早上 6 点
- 会在该时间范围的开始时正常关闭计算机(不会粗暴地关闭所有应用程序),并在用户尝试重新启动时关闭计算机
- 提前10分钟发出警告
- 如果我向该人提供一次性密码,偶尔会被禁用吗?
那个人使用 Linux,我很好奇有什么可以实现这个目的。它有点像家长控制,但不适合孩子。
感谢您的建议。
答案1
这个想法是使用Linux的PAM控制用户对服务的定时访问:
使用 pam_time 模块,我们可以在一天中的不同时间以及特定日期或通过各种终端线路设置对系统和/或特定应用程序的访问限制。根据配置,您可以使用此模块根据用户姓名、一天中的时间、一周中的日期、他们申请的服务以及他们发出请求的终端来拒绝个别用户的访问。
在文件中
/etc/security/time.conf
,规则的语法如下:
services;ttys;users;times
- 第一个字段 — services — 是 PAM 服务名称的逻辑列表。
- 第二个字段 tty 是终端名称的逻辑列表。
- 第三个字段 — 用户 — 是用户的逻辑列表或用户的网络组。
- 第四个字段——times——表示适用的次数。
以下是一组典型规则的示例:
login ; * ; !bobby ; MoTuWeThFr0800-2000 login ; * ; !root ; !Al0000-2400 http ; * ; !bobby ; MoTuWeThFr0800-2000 http ; * ; !root; !Al0000-2400
这些规则限制用户 bobby 在 08:00 到 20:00 之间登录,并且还限制这些时间段内的 Internet 访问。Root 可以在任何时间登录,并且可以在任何时间浏览 Internet。
答案2
最简单的方法(我喜欢 KISS 原则)就是让家里的某个人(室友、家人等)拔掉路由器的插头,并在晚上将电源线放在他们的房间里。(或者直接将路由器放在那个房间里,并放一个“用脚趾方便使用”的电源板。)
还有其他家长控制权适用于 Linux 的软件(成功程度不同)。请确保不要告诉他们密码。(当然,如果他们有 root 权限……)