sudoers 文件中的变量扩展

sudoers 文件中的变量扩展

在下面/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 命令别名块中复制脚本,将它们移动到不同的目录并使用上述构造。

相关内容