【发布时间】:2016-06-20 14:49:46
【问题描述】:
我开发了一个基于 django 的应用程序,它使用 Views 与最终用户交互,然后在底层操作系统 (Linux) 上工作。该系统的目的是为基于 linux 的系统提供一个用户友好的界面。这项任务几乎可以使用 Django 和 Python 完成。现在客户想看看linux是如何实时处理这些命令的。
举一个在网站视图上查找文件的示例,我有一个文本框,可以在其中输入文件名并点击一个名为搜索的按钮。因此,系统可能需要长达 5 分钟的时间,并在 find 命令执行结束时将结果返回给用户。客户不乐意坐下来观看一个盘旋的弹出窗口并希望在网页上看到 linux shell 或类似的东西。
==> 我的问题是如何在网页中集成 Linux Shell/终端?
这个问题还有其他替代方法吗?我的意思是客户不会介意我是否可以通过刷新屏幕来显示 linux 命令行输出,所有新行都发送到 Shell 的标准输出。
请指教。 谢谢。
【问题讨论】:
-
太宽泛了。一个完整的答案需要讨论安全考虑(沙盒、chroot 等)、连接类型(http 与 web 套接字与其他)、是否支持单个 Linux 发行版与通用,等等。跨度>
-
我正在 Virtualbox 环境中编写应用程序,根据要求客户将获得整个 Virtualbox/VDI 文件,因此它只是特定于机器的设置。此处的安全性不是问题,因为客户将在 Intranet 中运行此应用程序,除了少数已知用户之外,任何人都无法访问该应用程序。
-
您仍然必须采取预防措施,防止他们以 root 身份运行命令或运行会中断程序执行的命令。
-
同意。我创建了无密码 sudo。因此名为 admin 的用户可以毫无问题地执行“sudo
”。你能告诉我如何在网页中嵌入一个 linux 终端或 shell 吗?或者我还能做些什么来在网页上实时显示 linux 终端输出? -
@learner 你可以看看shell in a box 或者更好的wetty,因为它有一个 dockerized 版本