Regex 使用Visudo定时关机

Regex 使用Visudo定时关机,regex,unix,shutdown,sudoers,Regex,Unix,Shutdown,Sudoers,我想授予我机器上的用户user01关闭机器的能力,但必须至少提前1小时发出通知 本质上,这归结为以下命令: 关机-h+ 在这种情况下,必须大于60分钟 使用visudo,我添加了以下sudoers行: user01 ALL=/sbin/shutdown-h+ 我需要一些方法来确保user01仅在time参数大于60时才发出halt shutdown。我试过正则表达式,但没用。我这样说可能是错误的,但是sudoers文件似乎不支持regex 如果您能帮助我们评估表达式以完成此任务,我们将不胜感激。

我想授予我机器上的用户user01关闭机器的能力,但必须至少提前1小时发出通知

本质上,这归结为以下命令:

关机-h+

在这种情况下,必须大于60分钟

使用visudo,我添加了以下sudoers行:

user01 ALL=/sbin/shutdown-h+

我需要一些方法来确保user01仅在time参数大于60时才发出halt shutdown。我试过正则表达式,但没用。我这样说可能是错误的,但是sudoers文件似乎不支持regex

如果您能帮助我们评估表达式以完成此任务,我们将不胜感激。

我甚至不想知道sudoers是否有regex支持。快速grep建议它没有:

正则表达式很复杂,一个简单的错误就可以让用户运行Elvis knows什么。。。 [6-9][0-9]|[1-9][0-9]*[0-9][0-9]-如果表示法允许使用快捷方式计算出现次数,或者只使用“+”,则可以将其缩短,但您真的想要吗? 尽管如此,imho最简单、最明智的解决方案是按照

#! /bin/sh
test $# -eq 1    || exit
test 60 -lt "$1" || exit # maybe print a message
exec /sbin/shutdown -h "+$1"
并允许user01执行该脚本