进入sudoers文件并在底部添加如下内容:
tristan ALL=NOPASSWD:/usr/sbin/service nginx start,/usr/sbin/service nginx stop,/usr/sbin/service nginx restart
现在在命令行中,当我只写service nginx stop
时,我得到Stopping nginx:
,但实际上没有停止…只有当我做sudo service nginx stop
时,它才能工作。
我必须重新启动ubuntu吗?为什么?发生了什么?
还应该提到上面我的sudoers文件是:
# User privilege specification
root ALL=(ALL:ALL) ALL
tristan ALL=(ALL:ALL) ALL
首先:如果您在sudo中设置了NOPASSWD:,您仍然需要键入"sudo service ...."以root身份执行。它只是改变了行为,当sudo-ing时你不需要输入自己的密码。没有"auto-sudo",如果你真的需要,你必须创建一个专门的初始化脚本。或者尝试设置别名。
第二,如果你配置sudo到/usr/sbin/service nginx…然后输入sudo/usr/sbin/service nginx…为了匹配它,输入service nginx…(没有路径)它会掉入"tristan ALL=(ALL:ALL) ALL"
试试"sudo -l",看看你有哪些sudo权限。
祝好,j。