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

Jon*_*nik 20 linux ubuntu sudo shell-scripting

我希望用户对特定目录下的几个 shell 脚本(在我的情况下为 )拥有 sudo 权限(无需密码检查/usr/local/tomcat7/bin),而没有其他任何地方。实现这一目标的最简单方法是什么?

像这样的东西/etc/sudoers似乎不起作用:

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin
Run Code Online (Sandbox Code Playgroud)

use*_*517 25

我想你快到了。将 a/放在目录规范的末尾

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
Run Code Online (Sandbox Code Playgroud)

从 sudoers 手册页

目录是以“/”结尾的完全限定路径名。当您在 Cmnd_List 中指定目录时,用户将能够运行该目录中的任何文件(但不能运行其中的任何子目录)。


h0t*_*1r3 7

在路径末尾添加斜杠“/”。

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
Run Code Online (Sandbox Code Playgroud)