我有我的networking服务器应用程序启动时使用暴发户。 这是新贵脚本:
# web app node upstart file at /etc/init/webapp.conf description "web application" start on started mongodb stop on runlevel [06] respawn respawn limit 10 100 env NODE_ENV=production pre-start script ulimit -n 2048 end script exec start-stop-daemon --start -c mainuser --exec /usr/bin/make -- -C /home/mainuser/app start-prod
这完美地在Ubuntu服务器10.04 LTS上运行,我非常高兴。
不过,我有一个使用SSH作为mainuser
(这不是sudoer)login的部署shell脚本,然后将工作目录更新到最新的部署版本。
这里的问题是服务需要重新启动,以便应用程序加载新的源文件。 但是, mainuser
得到一个…
mainuser@Saturn101:~$ stop webapp -bash: stop: command not found
当试图阻止它。 我必须运行sudo stop webapp
,但是这个用户不能这样做,因为他不是一个sudoer。 出于安全原因,我不希望他成为sudoer,另外我不想插入sudo密码。
那么如何让mainuser
运行stop webapp
并start webapp
呢?
sudo是非常可configuration的,你可以允许这个用户在不提示input密码的情况下执行一组有限的命令。 /etc/sudoers
的以下行应该做你想做的事情:
mainuser ALL = (root) NOPASSWD: /sbin/start webapp, /sbin/stop webapp