sudoers文件中的命令?

时间:2017-12-29 00:47:51

标签: linux sudoers

我在sudoers文件中添加了以下命令,但它给了我语法错误,不允许" foo = bar"在命令之前。

user   ALL=(runas) SETENV:NOPASSWD:foo=bar /path/to/command /path/to/script

如果我添加使用/ bin / bash前缀,则可以使用

user   ALL=(runas) SETENV:NOPASSWD:/bin/bash -c "foo=bar /path/to/command /path/to/script"

但是当我从用户运行sudo时,它会要求我输入密码。 有人可以告诉我这应该怎么做?

1 个答案:

答案 0 :(得分:0)

您的命令列表必须是文件系统中指示其完整路径的文件。我不太确定您的foo=bar "command"意味着什么。如果设置了变量,那么您是否不缺少分号(foo=bar;)?但是无论如何,sudo并不是以任何方式设置变量,而是关于运行命令。您应该完全摆脱foo = bar并保持

user   ALL=(runas) SETENV:NOPASSWD: /path/to/command /path/to/script

您不会使用sudo来阻止用户设置变量(如果这首先就是您的意思)。

来自联机帮助页:

  

Cmnd_List是一个或多个命令名称,目录和目录的列表   其他别名。命令名称是完全限定的文件名,   可能包含壳式通配符(请参阅下面的“通配符”部分)。