在下面/some/long/and/annoying/path
我有几个脚本需要授予 sudo 访问权限,所以我在我的/etc/sudoers
(A):
Cmnd_Alias MY_SCRIPTS = /some/long/and/annoying/path/foo.sh, \
/some/long/and/annoying/path/bar.sh, \
/some/long/and/annoying/path/baz.sh, \
/some/long/and/annoying/path/qux.sh, \
/some/long/and/annoying/path/quux.sh, ...
但我不喜欢重复自己。
我意识到我可以写(二):
Cmnd_Alias MY_SCRIPTS = /some/long/and/annoying/path/
涵盖下面的所有脚本/some/long/and/annoying/path/
,但我确实喜欢按名称指定每个文件的控制。
所以我的问题是:
是否有语法如 (C):
MY_DIR = /some/long/and/annoying/path
Cmnd_Alias MY_SCRIPTS = $MYDIR/foo.sh, \
$MYDIR/bar.sh, \
$MYDIR/baz.sh, \
$MYDIR/qux.sh, \
$MYDIR/quux.sh, ...
这会既明确又干燥吗?
注意:不这是一个可以接受的答案,可以让我继续我的生活。
答案1
我不确定这是否适用于您的情况,但如果您希望某个用户使用 sudo 执行目录中的所有脚本,您可以使用以下构造:
username ALL=(ALL) NOPASSWD: /some/ungodly/long/directory/name/
请注意结尾的/
,这意味着 sudo 允许目录中的所有文件。
即使您不是这种情况,您仍然可以在 sudoers 命令别名块中复制脚本,将它们移动到不同的目录并使用上述构造。