允许人们临时访问我的服务器来运行命令

允许人们临时访问我的服务器来运行命令

今年夏天晚些时候,我将在一个偏僻的地方呆上十天。我有一项服务需要保持运行,如果我离开后出现问题,我想授予一两个受信任的人访问权限,以便能够重新启动该服务。该服务是一个 Node.js 应用程序,尽管它们技术性很强,但我希望它像通过 SSH 运行脚本一样简单(或者更好的选择,如果有的话)。实现这一目标的最佳方法是什么?

答案1

为了完全避免需要第二个人,您可能应该使用看门狗键入软件以保持服务正常运行。 Linux 上使用许多不同的工具来执行此操作,例如:

  1. 监控:http://mmonit.com/monit/
  2. 暴发户:http://upstart.ubuntu.com/
  3. 守护进程工具:http://cr.yp.to/daemontools.html
  4. 启动工具:http://people.debian.org/~enrico/launchtool.html

幸运的是,有一个名为 Node.js 的特定应用程序'forever'这将为您轻松完成此任务。这里有一个非常有帮助的教程关于如何使用它。

快速的方法是:

npm install forever -g
forever start app.js

答案2

配置sudo以便这两个用户可以执行必要的命令来停止/启动/任何服务。

最简单的当然是如果您有一个可以执行所有必需操作的初始化脚本。然后您所需要做的就是/sbin/service <servicename> ...根据您的发行版授予这些用户或类似用户。

这样您就不必对您的设置进行任何更改,并且您确定一切都会以所有正确的参数和设置等开始。

答案3

只需为值得信赖的人设置额外的帐户即可。仅允许此帐户对 Node.js 应用程序进行启动/停止/重新启动操作。毕竟,您可以使用以下示例脚本来管理您的应用程序:

#!/bin/bash

command=$1
ssh user@host "your-app $command"

之后像这样运行它:

script.sh restart

答案4

  1. 给他们一个普通用户。
  2. 将您想要的命令放在他们的路径中。
  3. 为您的可执行文件设置 SETUID 标志。

    # chmod u+s [your executable file for service restart]

相关内容