我如何才能防止自己在特定时间启动某个发行版?

我如何才能防止自己在特定时间启动某个发行版?

我有双启动设置:Manjaro KDE 和 Elementary OS。

假设我想阻止 Manjaro KDE 在特定时间启动(例如上午 8:00 至下午 1:00 之间),以便只有 Elementary OS 可以在该特定时间使用。

因为我认为我无法在 GRUB 级别采取行动,所以 Manjaro 当然能够启动,但某些软件应该阻止用户登录或使发行版在特定时间无法使用。

这可能吗?我该怎么办?

答案1

今天看来的事情明天不一定就会出现:-)

您应该被允许在/boot/grub/grub.cfg编辑时使用与日期和时间相关的命令/etc/grub.d,即使它们应该依赖于内部 PC 时钟,该时钟必须受到保护,以防止用户在操作系统和 BIOS 下使用,并且有可能从除这两个之外的源启动。此外,请记住,主板电池故障可能会导致内部时钟显示的时间错误。

看看这个ubuntu 线程寻求更多实用提示或这个帖子简单全景图。提示中继datehook模块和配置文件 ( /boot/grub/grub.cfg)

insmod datehook
if [ "$HOUR" -ge "8" -a "$HOUR" -lt "13" ]; then set default="0" #Manjaro KDE
else set default="1"                                             #Elementary OS 
fi

用手

如果你无法使用grub上述功能,你可以应用策略

  1. 在错误的时间抢占登录,强制重新启动并进行特定选择,如下所述这些其他答案。您应该在启动时必须执行的脚本中添加时间检查。如果检查未通过,您应该使用其他选项强制重新启动grub
    主要步骤如下:

    • /etc/default/grub写/检查GRUB_DEFAULT=saved
    • 使用grub-set-default(如果需要)作为所需的启动选项
    • sudo update-grub保存它

    在要运行的脚本中

    • grub-reboot <entry>指向其他操作系统。
  2. 当它到达黑色时,仍然登录的人时间窗口,例如以下建议davidgo 添加了一个检查crontab(但我再次认为最好编写一个小脚本,使用所需的 grub 选项重新启动,或者如果它直接起作用grub-reboot <entry>)。

祝您阅读和尝试愉快...

答案2

如果您能找到解决方案,就可以绕过它。如果是为了阻止那些不太了解的人的尝试,您只需在 crontab 中添加一行,以便在这些小时内每分钟重新启动一次。可能的做法是编辑 /etc/crontab 并添加

       * 8-12 * * * root shutdown -h now

相关内容