如何仅将sudo权限授予特定的脚本文件?

我想要一个用户sudo权限(没有密码检查)到一个特定的目录下的几个shell脚本(在我的情况下, /usr/local/tomcat7/bin ),并在其他地方。 什么是最简单的方法来完成这个?

/etc/sudoers这样的东西似乎没有工作:

 jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin 

我想你几乎在那里。 把/放在你的目录规范的末尾

 jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/ 

从sudoers手册页

目录是以“/”结尾的标准path名。 在Cmnd_List中指定目录时,用户将能够运行该目录中的任何文件(但不能在其中的任何子目录中)。

在path的末尾添加斜杠“/”。

 jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/