我有一个脚本,它以 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]*