在linux中执行关机命令之前,及时为用户设置上限和下限



比方说我想要一个名为"的非根用户;Alex";只允许关闭命令,但有这样的限制,他只能在至少120分钟后关闭,并且延迟不超过1000分钟。基本上,设置执行关机命令的上限和下限。此外,我正在使用Rocky Linux 9。

您可以:

  • 下载shutdownC源代码,对其进行修改以检查用户是否为Alex,如果是,则检查所需的时间范围。然后将此源代码编译为一个名为my_shutdown的程序,并将其安装到/usr/local/bin
    • 并将其与用于sudoers中alex的NOPASSWD一起添加
    • 或者只为其他用户退出程序,并在可执行文件上设置SUID位
    • 或者您可以从头开始编写程序,而不是使用现有的shutdown.c实现
  • 或者,您可以将特定的参数组合列表作为NOPASSWD添加到sudoers中,如alex ALL=NOPASSWD: shutdown 120m... 121m... 122m
  • 或者,您可以编写一个包装器,解析要关闭的参数,并检查它是否在范围内,如果在,它将把调用转发到shutdown可执行文件。并将该包装器添加到sudoers中,或在其上添加SUID。强烈考虑不使用脚本语言-例如,使用带有任何import的python,通过操纵PYTHONPATH环境变量,用户将能够以root用户身份执行任何代码

最新更新