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

2014 年 5 月 13 日
 ryan123
用FLASK构建了WEB端,现在想再网页上能执行linux命令并且能返回打印的结果到页面上.
编程新手,希望大家能指教下
4611 次点击
所在节点    Python
15 条回复
9hills
2014 年 5 月 13 日
subprocess 库
ryan123
2014 年 5 月 13 日
@9hills 谢谢,我也查到用这个. 网页端的请求是用post?
9hills
2014 年 5 月 13 日
@ryan123

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

看需求
Keyes
2014 年 5 月 13 日
要看你是否为耗时命令

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

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

https://study.congcong.us/t/112396

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

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

© 2021 V2EX