sudoers - 当命令以特定用户身份运行时

sudoers - 当命令以特定用户身份运行时

我希望在以某个用户身份运行某个命令时保留某些环境变量sudoman sudoers似乎建议Defaults可以做到这一点,如果我正确阅读了下面复制的段落(请参阅突出显示的部分),但其下面的语法规范似乎与此不匹配(除非它是该Runas部分?)并且我没有找到任何示例。是否可以?我目前失败的尝试是:

/etc/sudoers.d/certain:4:23: syntax error
Defaults:certain-user!/certain-command.sh env_keep += "ENV_VAR1 ENV_VAR2"
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我尝试过这种方法的变体(添加空格、更改命令等)但无济于事。

我提到的那一段:

默认值
某些配置选项可以在运行时通过一个或多个 Default_Entry 行更改其默认值。这些可能会影响任何主机上的所有用户、特定主机上的所有用户、特定用户、特定命令或作为特定用户运行的命令。请注意,每个命令条目可能不包含命令行参数。如果您需要指定参数,请定义 Cmnd_Alias 并引用它。

Default_Type ::= 'Defaults' |  
                 'Defaults' '@' Host_List |  
                 'Defaults' ':' User_List |  
                 'Defaults' '!' Cmnd_List |  
                 'Defaults' '>' Runas_List

任何帮助或见解将不胜感激。

答案1

我认为您将“作为特定用户运行的命令”解释为“作为特定用户运行的特定命令”,但我认为这意味着“对于作为特定用户运行的所有命令”。

无论如何,不​​可能为 run-as 和 command 添加限制Defaults- 此处显示的语法不允许这样做。如果是的话:

Default_Type ::= 'Defaults' |  
                 Defaults_Type '@' Host_List |  
                 Defaults_Type ':' User_List |  
                 Defaults_Type '!' Cmnd_List |  
                 Defaults_Type '>' Runas_List

那么你想要的可能是可能的,但如上所述,语法只允许这些:

Defaults
Defaults@...
Defaults:...
Defaults!...
Defaults>...

相关内容