我有一个包含"npm start“的bash脚本,我从一个电报API远程运行这个bash,通常不起作用。但是如果我只是在我的debian-stretch的控制台中登录到root用户,那么API就可以工作了!那么我的问题在哪里呢?谢谢
这段代码在bash中:
#!/bin/bash
screen -dm sudo npm start --prefix /root/gbot/发布于 2018-07-05 02:06:41
我以前没有使用过Telegram API。然而,我认为您正面临root权限的问题。
从远程应用程序接口运行可能不会使用root用户(这似乎会导致漏洞问题)。然后,如果您执行一个需要sudo的命令,它会要求您输入超级用户密码以临时获得超级用户权限。但是,如果您使用的是远程应用程序接口,您可能无法输入此根密码,这会导致您无法获得根权限,那么您就没有权限运行任何与sudo相关的操作。
要解决此问题,您可以使用命令expect将超级用户密码自动发送到询问密码的过程。但是,这可能会导致漏洞。
一个更好的解决方案可能是更改这个npm代码库的权限(chmod),或者将它移到更安全且不需要太高权限的地方(也可以使用chmod )。
https://stackoverflow.com/questions/51174980
复制相似问题