我使用节点的net ping,通过websockets连接到节点,使前端能够进行ping。因为linux只允许根用户发送ping请求,所以我不得不通过sudo运行脚本。这样做我一点也不舒服,但我觉得我没有太多的选择。
我想知道的是,是否还有其他方法可以获得发送ping请求的权限?如果没有,我应该采取哪些步骤使其尽可能安全?
Dev服务器是Ubuntu Desktop 13.10x64,生产服务器是ubuntu服务器12.04x64。
编辑:
我有一个节点运行一个脚本,该脚本设置一个sockets.io套接字服务器,并侦听来自前端(网站)的请求,以便在主机上执行ping操作。然后,它通过网络ping运行ping,并在它们进入时将结果发送回客户端。通过这种方式,我可以通过网站运行几乎实时的页面。websockets本身不运行pings,它们只是让"ping服务器“和客户端进行通信。
发布于 2014-01-31 14:03:00
Linux上保护对< 1024端口的访问。我也同意:将node.js作为根运行可能不是一个明智的想法。
尝试执行/bin/ping命令。这是一个SUID命令,这意味着它将变成根用户,只需发送ping。
另一种解决方案是运行2个node.js进程。一个接收来自网络的命令,另一个发送pings。外部服务器成为受保护的ping服务器的一种智能防火墙,它作为根用户运行,只接受来自localhost的连接。
https://stackoverflow.com/questions/21481615
复制相似问题