首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux:一行代码创建一个可执行命令的 Web 服务器

Linux:一行代码创建一个可执行命令的 Web 服务器

作者头像
somenzz
发布2023-01-03 19:09:43
6850
发布2023-01-03 19:09:43
举报
文章被收录于专栏:Python七号Python七号

如果你想让系统更加安全,那可能要花费很多时间,相反,如果你想让系统不安全,那就是分分钟的事情,本文分享一个不安全的方式在 Linux 上快速建立一个 Web 服务,它可以将 bash 指令的执行结果返回给前端,提醒一下,千万别在生产环境使用。

首先编写这样一行代码,保存为 web.sh

#!/bin/bash
while true; do 
    echo -e "HTTP/1.1 200 OK\n\n$($1)" | nc -l -k -p 8080 -q 1; 
done

然后添加可执行权限:

chmod u+x web.sh

执行这个脚本,给他一个命令参数,比如 ps aux:

./web.sh "ps aux"

打开浏览器,输入网址 http://127.0.0.1:8080,就会看到下图所示的结果:

每次刷新浏览器都会打印 ps aux 命令的最新结果!

为什么可以这样?

#!/bin/bash
while true; do 
    echo -e "HTTP/1.1 200 OK\n\n$($1)" | nc -l -k -p 8080 -q 1; 
done

因为有一个始终执行的循环使用 while true,让 nc 命令持续在端口 8080 监听浏览器请求,每次刷新时,都会执行作为参数传递给 web.sh 的脚本,其结果连同一些 HTTP 标头会传递给 nc,后者又会发送给我们的浏览器。

一条简单的命令就可以起到远程监控服务器进程的效果,是不是很方便?不过这样并不安全,自己玩玩可以,不推荐生产环境使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python七号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档