网页中的 shell 是真 shell 还是其他?
- 0次
- 2021-07-16 19:01:58
- idczone
我看到一些网站比如 Docker 官网的 Try it ( http://www.docker.com/tryit/ ),里面的 terminal 是真的把命令发给服务器执行把结果返回还是怎么做的?
我尝试用 PHP 写了一个,前端把获取到的命令,提交, PHP 用 exec 之类的函数执行,把打印出来的返回给前端。但这样虽然能执行一些简单的命令,但可以说完全达不到人家的那种效果。首先是不安全,其次是无法运行像 iPython 之类的交互环境。
[email&sudo
sudo: command not found
显然不是真的
有两种
1. Emulator,模拟器,只是模拟几个命令罢了,很安全很简单
2. 真正的Shell
两个都有开源实现
[email&ls
This is an emulator, not a shell. Try following the instructions.
其实我最想问的是如何实现。。。
@liyanbowen
@ChiChou
这个理由不成立……
sudo 又不是每个发行版都自带的
cgi调用的shell吧
这种不是web terminal么?开源实现很多。
记得有单个js文件就可以实现的。
看具体需求吧,有些是用真的shell,但是是环境是个沙箱,经过裁剪和保护的
Linux用户权限管理 很够用了吧。直接Server执行命令,STDOUT喂Queue,前端取出来就行。不安全的操作直接就拒绝了。
https://github.com/elfet/console
这里有一个单文件的php实现, 可以参考下, top, vi之类的命令用不了
https://code.google.com/p/shellinabox/
这个是Linode用的Ajax Console, 功能更强大
另外还有好些Java applet实现的就不说了
用js写的linux虚拟机。这是真正的linux,不是shell。
http://bellard.org/jslinux/
三种。难度由易到难
1.用js模拟几个简单命令
2.把前端命令发给后端,再把执行结果发回前端。这可能安全吗?
3.用js写一个虚拟机,跑定制好的linux。
koding.com这个网站是怎么做的?线上开发环境
随便敲了几个都是command not found