V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
DopaminePlz
V2EX  ›  Linux

有没有可以执行脚本的 WEB-UI?

  •  1
     
  •   DopaminePlz · 2021-03-31 19:02:23 +08:00 · 5243 次点击
    这是一个创建于 1358 天前的主题,其中的信息可能已经有所发展或是发生改变。

    主要是想在 LINUX 主机上部署网页服务,这样使用者可以执行简单的 SHELL 脚本:

    1. 有 N 个输入框,可以选择或者输入 SHELL 脚本、参数,用户按按钮可执行脚本,在输出区可以查看结果;

    2. 网页自定义:管理员可以增加输入框、输出框等按钮。

    44 条回复    2021-08-19 08:03:48 +08:00
    codehz
        1
    codehz  
       2021-03-31 19:14:17 +08:00 via Android   ❤️ 2
    (CGI:你在说我?
    lixuanyy
        2
    lixuanyy  
       2021-03-31 19:18:06 +08:00 via iPhone
    webtty
    Jirajine
        3
    Jirajine  
       2021-03-31 19:21:45 +08:00 via Android   ❤️ 1
    jupyter
    PMR
        4
    PMR  
       2021-03-31 19:55:49 +08:00 via Android   ❤️ 1
    Webshell
    FreeEx
        5
    FreeEx  
       2021-03-31 20:15:56 +08:00 via iPhone
    Tink
        6
    Tink  
       2021-03-31 20:52:10 +08:00 via Android
    ttyd 吧
    40EaE5uJO3Xt1VVa
        7
    40EaE5uJO3Xt1VVa  
       2021-03-31 21:36:04 +08:00
    宝塔
    pengwkgood
        8
    pengwkgood  
       2021-03-31 21:51:48 +08:00
    https://github.com/touch-callable/touch-callable 可以试试我写的这个工具,不能直接调用,但是可以用 Python 包装一下支持你说的功能。
    no1xsyzy
        9
    no1xsyzy  
       2021-03-31 23:09:51 +08:00
    问下,用户是可信的吗?
    可信就是 Jupyter,可以开终端窗口,也可以用 Workbook 调用 sh 命令,完美
    不那么可信就是 FastAPI 里面调脚本,直接用 swagger 当界面。
    viakiba
        10
    viakiba  
       2021-03-31 23:31:27 +08:00 via iPhone
    jetty 原生支持 shell 脚本
    ch2
        11
    ch2  
       2021-04-01 01:16:42 +08:00 via iPhone
    gitcourse 了解一下,基于 docker
    zhuyuefeng
        12
    zhuyuefeng  
       2021-04-01 01:35:31 +08:00 via iPhone
    Instantbox
    webshe11
        13
    webshe11  
       2021-04-01 02:54:29 +08:00
    正是在下
    (看我名字,Webshell )
    楼主上传完然后就被 360 主机卫士 Linux 版杀掉了(滑稽
    defunct9
        14
    defunct9  
       2021-04-01 07:47:56 +08:00 via iPhone
    shellbox,从挖矿 ethOS 学到的
    d0m2o08
        15
    d0m2o08  
       2021-04-01 08:04:02 +08:00   ❤️ 1
    楼主说的难道不是 jenkins ?
    bleepbloop
        16
    bleepbloop  
       2021-04-01 09:44:43 +08:00
    装个木马就可以
    xy2401
        17
    xy2401  
       2021-04-01 09:51:19 +08:00
    @viakiba jetty 不是 java 容器吗?
    xy2401
        18
    xy2401  
       2021-04-01 09:52:59 +08:00
    我想问一个类似的。
    ffmpeg 有转换字幕格式的功能。vtt 到 str 。
    这个有最简单方案封装成一个 http 服务吗?
    dongtingyue
        19
    dongtingyue  
       2021-04-01 09:53:26 +08:00
    triptipstop
        20
    triptipstop  
       2021-04-01 10:12:43 +08:00   ❤️ 3
    中国菜刀
    kikyous
        21
    kikyous  
       2021-04-01 10:19:29 +08:00 via Android
    你需要 ansible
    dapang1221
        22
    dapang1221  
       2021-04-01 10:22:17 +08:00   ❤️ 1
    真就自己给自己装后门啊……别吧,无论如何这都太不安全了…
    lanjz
        23
    lanjz  
       2021-04-01 11:37:41 +08:00
    SenLief
        24
    SenLief  
       2021-04-01 11:57:52 +08:00 via Android
    @xy2401 你就是想提供个简单的网页功能是吧。
    tankren
        25
    tankren  
       2021-04-01 13:15:52 +08:00
    webshell?
    no1xsyzy
        26
    no1xsyzy  
       2021-04-01 14:02:43 +08:00
    @xy2401 Python 随便找个简单的框架,同步框架直接 Popen 调用,异步的在协程里 Popen,这是最最最方便的。稍微麻烦一点就是去找 binding
    其他脚本语言或多或少都有类似的功能。
    写 bash 也能 busybox httpd
    最重要的就是你熟悉什么语言。
    no1xsyzy
        27
    no1xsyzy  
       2021-04-01 14:05:54 +08:00
    说起来,大学实习某单位进去先让我做了个小工具,用 tornado 写了个一个网页,点下按钮开始 build,能看到 build 结果。
    然后是获取摘要和 vcdiff

    因为都是内部用,尽快完成然后基本不管的那种,都很脏地直接调进程了(
    varrily
        28
    varrily  
       2021-04-01 15:21:53 +08:00
    Apache Guacamole

    https://dorole.com/2072/
    abersheeran
        29
    abersheeran  
       2021-04-01 15:25:11 +08:00
    @xy2401 https://github.com/abersheeran/rpc.py 一键把函数转 HTTP 接口
    Hardo
        30
    Hardo  
       2021-04-01 15:25:42 +08:00   ❤️ 2
    https://github.com/makeflow/makescript
    可以试试我司之前写的一个内部用的小工具,可以通过 webhook 或在网页端执行服务器上的脚本,也可以在网页上查看执行结果,不知道满不满足你的需求。
    Hconk
        31
    Hconk  
       2021-04-01 15:40:45 +08:00
    看看 zabbix 呢
    CallMeReznov
        32
    CallMeReznov  
       2021-04-01 17:07:51 +08:00
    centos8:Cockpit
    DopaminePlz
        33
    DopaminePlz  
    OP
       2021-04-01 18:41:13 +08:00
    @lanjz 好像很占 CPU 。我的小主机,经常 90%的利用率。
    DopaminePlz
        34
    DopaminePlz  
    OP
       2021-04-01 18:42:04 +08:00
    @kikyous 这个是运维自动化工具吧?
    viakiba
        35
    viakiba  
       2021-04-01 19:40:35 +08:00 via iPhone
    @xy2401 这不就用啥 ui 都行了
    pengwkgood
        36
    pengwkgood  
       2021-04-01 21:31:14 +08:00
    @xy2401 https://github.com/touch-callable/touch-callable 这个你可以试试,写一个 Python 函数就可以了,我是作者,有问题还可以直接找我。
    DopaminePlz
        37
    DopaminePlz  
    OP
       2021-04-01 21:52:27 +08:00
    @no1xsyzy 内网使用,可信。jupyter 试了一下,勉勉强强满足要求,就是先要在 Files 里面打开后再运行,打开后甚至还可以编辑(设置只读属性仍可以编辑,但不能保存;最好是只读时也不能编辑)。另外就是无法设置密码( jupyter notebook password 运行失败)。至于后者,对我来说太复杂了(本人非程序员)。
    godblessumilk
        38
    godblessumilk  
       2021-04-02 08:49:37 +08:00 via Android
    中国菜刀:用我 ⑧,保证你以后开心得用菜刀直播剁屌
    cheng6563
        39
    cheng6563  
       2021-04-02 10:21:51 +08:00
    jenkins 的一个用法就是脚本管理器
    sbilly
        40
    sbilly  
       2021-04-02 11:41:29 +08:00
    BUYI
        41
    BUYI  
       2021-04-09 12:05:49 +08:00
    你想要的是 Rundeck
    但是上手需要点时间,你要耐心看看
    DopaminePlz
        42
    DopaminePlz  
    OP
       2021-08-19 07:12:35 +08:00 via Android
    @webshe11 并不上传,都是固定的几个命令,存储在服务器上。
    DopaminePlz
        43
    DopaminePlz  
    OP
       2021-08-19 07:27:57 +08:00 via Android
    @Hardo 看起来不错
    DopaminePlz
        44
    DopaminePlz  
    OP
       2021-08-19 08:03:48 +08:00 via Android
    @dapang1221 不知道通过网页执行固定的脚本是否属于后门?脚本不能页面里上传,也不能在网页里生成,只能通过 SSH 登陆进去编辑;页面里只能由管理员指定脚本文件,或者只能通过配置文件指定,其它用户只能运行管理员规定的脚本。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5750 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:25 · PVG 11:25 · LAX 19:25 · JFK 22:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.