如何在 sudoers 中验证添加到脚本的特定输入

如何在 sudoers 中验证添加到脚本的特定输入

我有一个脚本,它以 IP 地址作为输入。我的问题是,我可以在 sudoers 中指定可以添加到我的脚本中的输入吗?现在我这样做:

 user ALL = !ALL, /bin/sh, /home/user/scripts/addIP.sh *

但这允许任何输入,我可以指定吗?我尝试这样做:

 ussshnode ALL = !ALL, /bin/sh, /home/ussshnode/node_2fa_prod/scripts/addIP.sh [0-9]+.[0-9]+.[0-9]+.[0-9]+

但它不能正常工作。有什么建议吗?

答案1

1)命令规范通配符不包括“+”号,但我猜以下语法将达到您的期望:

addIP.sh [0-9]*.[0-9]*.[0-9]*.[0-9]*

2)最好将使用 sudo 的二进制文件/脚本放置在只有 root 才能写入的位置。

3)我认为命令规范中的初始“!ALL,”是无用的,并且在 sudoable 命令中包含 /bin/sh 将允许您的用户在将其嵌入脚本后以 root 身份执行任何操作......

=> 所以我会这样写(并将脚本放在给定的路径中):

user ALL = /usr/local/scripts/addIP.sh [0-9]*.[0-9]*.[0-9]*.[0-9]*

相关内容