如何为用户提供sudo权限以运行具有进程ID的脚本

时间:2017-01-09 13:11:36

标签: linux shell sudo visudo

我想提供sudo权限,在执行脚本时不会要求输入密码。我面临的问题是我必须在运行脚本时提供进程ID作为参数。我已在visudo中尝试了以下条目,但它失败并且无权执行命令:

user ALL = (root) NOPASSWD: /usr/java/jdk1.7.0_25/bin/jstack 21580

我也试过这个:

user ALL = (root) NOPASSWD: /usr/java/jdk1.7.0_25/bin/jstack

jstack是要执行的脚本,21580java的进程ID,在重新启动服务时会随机更改。

但它不起作用。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

我已经通过删除

中的(root)解决了这个问题

用户ALL =(root)NOPASSWD:/usr/java/jdk1.7.0_25/bin/jstack

现在一切正常。我的错误只有:)

进程ID只是要打印堆栈跟踪的进程ID。

更多信息:http://docs.oracle.com/javase/7/docs/technotes/tools/share/jstack.html

谢谢大家!!