Tom*_*Tom 16 permissions deployment upstart
我已经使用 upstart 在启动时启动了我的网络服务器应用程序。这是新贵脚本:
# 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
Run Code Online (Sandbox Code Playgroud)
这在 Ubuntu 服务器 10.04 LTS 上完美运行,我对此感到非常高兴。
但是,我有一个部署 shell 脚本,它使用 SSH 登录mainuser(这不是 sudoer),然后将工作目录更新为最新的部署版本。
这里的问题是需要重新启动服务,以便应用程序加载新的源文件。然而,mainuser得到一个...
mainuser@Saturn101:~$ stop webapp
-bash: stop: command not found
Run Code Online (Sandbox Code Playgroud)
...当试图阻止它时。我必须运行sudo stop webapp,但该用户不能这样做,因为他不是 sudoer。出于安全原因,我也不希望他成为 sudoer,而且我不想插入 sudo 密码。
那么我如何允许mainuser运行stop webapp和start webapp?
mgo*_*ven 31
sudo 是非常可配置的,您可以允许该用户执行一组有限的命令而无需提示输入密码。以下行/etc/sudoers应该做你想做的:
mainuser ALL = (root) NOPASSWD: /sbin/start webapp, /sbin/stop webapp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14107 次 |
| 最近记录: |