我知道,还有很多与此问题相关的帖子。但是,这不是一种安全的方式。我最初添加了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
用户身份运行特定命令的权限?
答案 0 :(得分:0)
你的第一行似乎运作良好,我试了没问题,你确定第120行是你想要添加的吗? 使用命令&#34; se:nu&#34;在vi上检查问题是不是来自之前或之后的另一条线,如果它不起作用你发布你所有的sudoers文件?