python web 端 如何能执行 linux 命令?

2014-05-13 18:15:14 +08:00
 ryan123
用FLASK构建了WEB端,现在想再网页上能执行linux命令并且能返回打印的结果到页面上.
编程新手,希望大家能指教下
4164 次点击
所在节点    Python
15 条回复
9hills
2014-05-13 18:21:50 +08:00
subprocess 库
ryan123
2014-05-13 18:27:12 +08:00
@9hills 谢谢,我也查到用这个. 网页端的请求是用post?
9hills
2014-05-13 18:35:00 +08:00
@ryan123

web页面执行shell命令分几个等级
1. 简单的,执行时间很短的,直接POST提交表单,显示结果
2. 复杂点用ajax,不用刷新页面
3. 再复杂点,用websocket。直接页面刷实时结果

看需求
Keyes
2014-05-13 19:15:54 +08:00
要看你是否为耗时命令

非耗时命令直接p = subprocess.Popen然后p.wait拿结果
耗时命令要控制好阻塞,命令启动后生成一个结果ID,让AJAX拿着ID来问你要结果
ryan123
2014-05-13 19:19:35 +08:00
@Keyes
@9hills
感谢不吝赐教
xiaket
2014-05-13 21:11:45 +08:00
注意控制好权限, 不要让这个功能成为安全漏洞.
rayps
2014-05-13 21:24:08 +08:00
楼主干嘛用 Ramotion 的头像
ryan123
2014-05-13 23:31:46 +08:00
@rayps 哈,网上乱搜的
ryan123
2014-05-13 23:32:29 +08:00
@xiaket 自己瞎捣鼓的,不过谢谢提醒
cbsw
2014-05-13 23:40:24 +08:00
在网页端执行 linux 命令,确定你的权限能很好的控制?感觉这相当危险啊,看看可不可以提供一个虚拟环境
zjgood
2014-05-14 01:48:14 +08:00
shellinabox
ryan123
2014-05-14 04:50:17 +08:00
@zjgood 看着不错,谢谢
zjgood
2014-05-14 06:26:03 +08:00
@zjgood 我发现linode的Lish就是这货改的,上次进Lish按了一下右键,就出现了shellinabox的版权。。
tonghuashuai
2014-05-14 09:11:28 +08:00
os.popen('git pull').read()
nilai
2014-05-14 19:00:30 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/112396

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX