使用Telegram Bot运行根脚本

时间:2015-12-16 12:55:30

标签: php linux telegram-bot

我有一个WebHook配置为与Telegram Bot交换,我想在bot命令到达时运行一些root命令。我们知道Telegram Bot将https请求发送到我们的Web钩子,所以我只能运行shell脚本作为 www-data 用户。但我实际上想以root身份运行它。

我的脚本kill.sh:

#!/bin/bash

kill -9 $1

从php我运行:

exec('kill.sh ' . $pidFromTelegramMessage);

版权:

$ ls -al kill.sh
-r-xr-x---  1 root www-data     24 Dec 16 15:27 kill.sh*

我甚至尝试将此脚本放在/ tmp目录中,但我也无法正常工作。总是得到:

/tmp/kill.sh:3:kill:不允许操作

1 个答案:

答案 0 :(得分:1)

我发现只有一种方法可以做到这一点。我通过运行 visudo 命令将此行放入 / etc / sudoers

www-data ALL = NOPASSWD: /bin/kill, /usr/bin/tail, /tmp/run.sh

向/tmp/run.sh添加执行权限:

chmod a+x /tmp/run.sh

现在您可以将这三个命令作为www-data user:

运行
sudo kill -9 32233
sudo /tmp/run.sh

但是在允许任何人执行/tmp/run.sh脚本之前你必须要三思而后行。