为特定命令添加NOPASSWD

时间:2015-06-13 11:15:08

标签: linux shell sudo

我知道,还有很多与此问题相关的帖子。但是,这不是一种安全的方式。我最初添加了Defaults:apache !requiretty并设置了由Web用户运行的script.sh文件路径,此script.sh调用另一个应该以{{1​​}}用户身份运行的命令。 然后我像这样添加了NOPASSWD

root

它出现以下错误

apache ALL = (ALL) NOPASSWD:/home/app/admin/tomcat.sh start

然后,我直接添加了应该作为sudo: >>> /etc/sudoers: syntax error near line 120 <<< sudo: parse error in /etc/sudoers near line 120 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin 用户运行的命令。它变成了

root

我也尝试更改命令,例如:

apache ALL = (ALL) NOPASSWD:/bin/su root -c /usr/share/apache-tomcat-7.0.61/bin/startup.sh

仍然是相同的(上面)错误。 虽然apache ALL = (ALL) NOPASSWD:/usr/share/apache-tomcat-7.0.61/bin/shutdown.sh 效果很好。但是存在安全问题。

那么,我如何授予用户以apache ALL=(ALL) NOPASSWD: ALL用户身份运行特定命令的权限?

1 个答案:

答案 0 :(得分:0)

你的第一行似乎运作良好,我试了没问题,你确定第120行是你想要添加的吗? 使用命令&#34; se:nu&#34;在vi上检查问题是不是来自之前或之后的另一条线,如果它不起作用你发布你所有的sudoers文件?