V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vicalloy
V2EX  ›  Telegram

远程执行 Shell 命令的 Telegram 机器人

  •  
  •   vicalloy · 2020-03-01 08:33:47 +08:00 · 2142 次点击
    这是一个创建于 1733 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址: https://github.com/vicalloy/telegram-shell-bot

    很早之前就打算做这么一个东西,后来因为要调用的脚本是 Python 写的,于是直接在 Bot 里调用 Python 代码。 近期把这个想法重新实现了。

    网上也有类似的项目,其中一些比较简单,甚至都没有对用户做校验,这样只要有人可以连上你的机器人就可以控制你的机器。类似的机器人里功能最强的是shell-bot。"shell-bot"模拟了一个 tty,实现较复杂,没有仔细研究。

    Telegram Shell Bot目前提供的功能有:

    1. 鉴权,只有在许可列表里的用户才能对机器人发号指令。
    2. Shell 命令的执行,如 ls、cat、ps 等。
    3. 长时间执行命令的管理。如执行 wget 操作,只返回最开始几条输出(防止一直刷屏)。之后可以通过/tasks命令查看有哪些命令还在执行中,并可以通过 /kill pid 的方式强制结束命令。
    4. 支持 sudo。注:sudo 通过 echo password | su -S 的方式实现,需要自行评估风险。
    5. 自定义脚本放在 ./scripts 目录,通过 /script 命令可以快速访问这些脚本并执行。

    第 1 条附言  ·  2020-03-04 22:00:57 +08:00
    增加了 Go 版本实现: https://github.com/vicalloy/vicalloy-telegram-shell-bot-go
    对 Go 不熟悉,相比 Python 版完成度要更低一些。
    1 条回复    2020-03-01 09:39:44 +08:00
    Tink
        1
    Tink  
       2020-03-01 09:39:44 +08:00 via iPhone
    我之前写过一个微信公众号的,也没有身份验证,只能访问服务端指定的那几个目录 233
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1049 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 20:44 · PVG 04:44 · LAX 12:44 · JFK 15:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.