V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ryan123
V2EX  ›  Python

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

  •  
  •   ryan123 · 2014-05-13 18:15:14 +08:00 · 4158 次点击
    这是一个创建于 3844 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用FLASK构建了WEB端,现在想再网页上能执行linux命令并且能返回打印的结果到页面上.
    编程新手,希望大家能指教下
    15 条回复    2014-05-14 19:00:30 +08:00
    9hills
        1
    9hills  
       2014-05-13 18:21:50 +08:00   ❤️ 1
    subprocess 库
    ryan123
        2
    ryan123  
    OP
       2014-05-13 18:27:12 +08:00
    @9hills 谢谢,我也查到用这个. 网页端的请求是用post?
    9hills
        3
    9hills  
       2014-05-13 18:35:00 +08:00   ❤️ 1
    @ryan123

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

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

    非耗时命令直接p = subprocess.Popen然后p.wait拿结果
    耗时命令要控制好阻塞,命令启动后生成一个结果ID,让AJAX拿着ID来问你要结果
    ryan123
        5
    ryan123  
    OP
       2014-05-13 19:19:35 +08:00
    @Keyes
    @9hills
    感谢不吝赐教
    xiaket
        6
    xiaket  
       2014-05-13 21:11:45 +08:00
    注意控制好权限, 不要让这个功能成为安全漏洞.
    rayps
        7
    rayps  
       2014-05-13 21:24:08 +08:00
    楼主干嘛用 Ramotion 的头像
    ryan123
        8
    ryan123  
    OP
       2014-05-13 23:31:46 +08:00 via iPad
    @rayps 哈,网上乱搜的
    ryan123
        9
    ryan123  
    OP
       2014-05-13 23:32:29 +08:00 via iPad
    @xiaket 自己瞎捣鼓的,不过谢谢提醒
    cbsw
        10
    cbsw  
       2014-05-13 23:40:24 +08:00
    在网页端执行 linux 命令,确定你的权限能很好的控制?感觉这相当危险啊,看看可不可以提供一个虚拟环境
    zjgood
        11
    zjgood  
       2014-05-14 01:48:14 +08:00 via Android
    shellinabox
    ryan123
        12
    ryan123  
    OP
       2014-05-14 04:50:17 +08:00
    @zjgood 看着不错,谢谢
    zjgood
        13
    zjgood  
       2014-05-14 06:26:03 +08:00 via Android
    @zjgood 我发现linode的Lish就是这货改的,上次进Lish按了一下右键,就出现了shellinabox的版权。。
    tonghuashuai
        14
    tonghuashuai  
       2014-05-14 09:11:28 +08:00
    os.popen('git pull').read()
    nilai
        15
    nilai  
       2014-05-14 19:00:30 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1394 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:29 · PVG 01:29 · LAX 09:29 · JFK 12:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.