今天调研基于Web的SSH的应用程序的时候无意间看到了一个Web Console的工具,虽然没有满足我的最终需求,但还是试了一下,可以当作一个受限的基于Web远程执行命令工具使用。
下载并解压
首先从 http://web-console.org/ 下载安装包,就是一个zip包 webconsole-0.9.7.zip,下载后解压。
wget -c https://github.com/nickola/web-console/releases/download/v0.9.7/webconsole-0.9.7.zip
unzip webconsole-0.9.7.zip
配置
编辑 webconsole.php 文件
# 如果是单用户使用,添加用户名和密码
$USER = 'admin';
$PASSWORD = 'admin';
# 如果是多用户使用,配置下面两项
# $ACCOUNTS = array('user1' => 'password1', 'user2' => 'password2');
这里说明一下,这里的用户名和密码并不对应linux系统上的用户名和密码,而是指定可以使用 Web Console 这个工具的用户。因此我们可以随意指定。在后太真正执行的linux命令其实是以apache(如果在apache中运行)或者启动webconsole.php这个脚本的用户来执行的。
运行
这里为了方便测试,我并没有放到我的 apache 下运行,而是直接使用 php 启动一个 built-in web 服务来运行。
php -S 192.168.0.123:12345 webconsole.php
然后通过浏览器访问 http://192.168.0.123:12345 来访问。页面打开后,会提示输入用户名和密码,这里就可以输入上面配置的用户名和密码。然后我们运行基本的 linux 命令了。
...
user@192.168.0.123 ~$ hostname
myhost
user@192.168.0.123 ~$ id
uid=1000(kongxx) gid=1000(kongxx) groups=1000(kongxx),10(wheel)
通过上面的命令可以看出最终执行命令的用户其实是kongxx这个Linux用户。
注意
这里需要说明一下,Web Console对于命令执行立刻结束的命令支持比较好,比如上面的两个命令,但是对于一些交互式或者无退出的命令目前还不能支持,一旦运行就会hang住,比如:ping,vi/vim等。