我有一个包含“ npm start”的bash脚本,并且我从电报API远程运行此bash,通常不起作用。但是如果我只是在我的debian-stretch控制台中登录到root用户,那么该API确实可以工作! 那我的问题在哪里呢? 谢谢
此代码在bash中:
#!/bin/bash
screen -dm sudo npm start --prefix /root/gbot/
答案 0 :(得分:0)
我以前没有使用过Telegram API。但是我认为您正面临root权限的问题。
从远程API运行可能无法使用def sort_chunks(data):
sorted_data = pysqldf("select * from data order by b, a", locals())
return sorted_data
用户(这似乎会导致漏洞问题)。然后,如果执行需要root
的命令,它将要求您输入root密码以临时获得root特权。但是,如果您使用的是远程API,则可能无法输入此root密码,这将导致您无法获得root特权,那么您无权运行与sudo
相关的任何内容。 / p>
要解决此问题,您可以使用命令sudo
自动将root密码发送到询问密码的过程中。但是,这可能会导致漏洞。
更好的解决方案可能是更改此npm存储库的特权(expect
),或将其移到安全性更高且不需要太高特权的位置(可以使用chmod
也是如此)。