Как выполнять команды оболочки через HTTP-сервер
Сегодня мы обсудим интересную и полезную утилиту под названием "shell2http", которую можно использовать для выполнения команд оболочки через http-сервер. Вы можете запускать любые команды на своем компьютере с Linux и отправлять результаты своему коллеге или другу в локальной сети для их просмотра. Он/она может просмотреть выходные данные в веб-браузере. Этот инструмент может быть полезен, если вы не хотите предоставлять SSH-доступ своему другу. Просто спросите его, вывод какой команды он хотел бы видеть, запустите эту команду в своей локальной системе и позвольте ему просмотреть ее в своем веб-браузере из любой точки локальной сети. Вашему другу не нужен доступ по SSH для просмотра результатов любого вывода.
Shell2http — выполнение команд оболочки через HTTP-сервер
Shell2http можно загрузить по следующей ссылке в зависимости от используемого вами дистрибутива. Он будет поддерживать GNU/Linux, Windows и Mac OS X.
- Загрузить shell2http
Или выполните следующие команды, чтобы загрузить его из терминала:
Убедитесь, что у вас установлен загрузчик командной строки wget и инструмент сжатия unzip.
В системах на базе RPM выполните следующую команду от имени пользователя root, чтобы установить их.
yum install wget unzip
В системах на базе DEB запустите:
sudo apt-get install wget unzip
Чтобы загрузить 64-битную версию оболочки Shell2http:
wget https://github.com/msoap/shell2http/releases/download/1.7/shell2http-1.7.linux.amd64.zip
Чтобы загрузить 32-битную оболочку http:
wget https://github.com/msoap/shell2http/releases/download/1.7/shell2http-1.7.linux.386.zip
Извлеките сжатый файл в любое место по вашему выбору.
unzip shell2http-1.7.linux.xxx.zip
Перейдите в извлеченную папку и начните использовать Shell2http.
Допустим, ваш друг хочет просмотреть установленную версию ядра Linux в вашей системе.
Для этого запустите:
shell2http -host 192.168.1.150 -port 8080 /kernel "uname -r"
Здесь 192.168.1.150 — IP-адрес вашей локальной системы. 8080 — номер порта. /kernel — путь для просмотра вывода команды. А "uname -r" — это команда для отображения версии ядра вашей системы.
Пример вывода:
2017/02/03 14:57:21 register: /kernel (uname -r)
2017/02/03 14:57:21 listen http://192.168.1.150:8080/
Вероятно, вам нужно открыть порт «8080» в брандмауэре или маршрутизаторе. В системах, использующих firewalld (например, RHEL, CentOS), выполните следующую команду от имени пользователя root, чтобы открыть порт 8080:
firewall-cmd --add-port=8080/tcp --permanent
Перезапустите службу firewalld с помощью команды:
firewall-cmd --reload
В системах Debian и Ubuntu запустите:
sudo ufw allow 8080
Просто убедитесь, что порт 8080 не используется другими приложениями. Если это так, укажите в команде другой порт и разрешите этот порт через брандмауэр.
Теперь попросите своего друга открыть свой веб-браузер и указать в нем "http://IP-адрес:8080/kernel" или "http://hostname:8080/kernel". Это очень просто.
Пример вывода:
Если ваш друг хочет проанализировать использование диска, просто запустите следующую команду в своей локальной системе.
shell2http -host 192.168.1.150 -port 8080 /diskusage "du -h"
И попросите его открыть путь — http://IP-адрес:8080/diskusage в своем веб-браузере.
Чтобы выйти из команды, нажмите CTRL+C.
Очень удобно, не так ли? Конечно, это является!
Вы также можете объединить две команды и отправить результаты своему другу, как показано ниже.
В приведенном ниже примере я собираюсь запустить команды du и ps и отправить выходные данные на http-сервер.
shell2http /diskspace "df -h" /ps "ps aux"2017/02/03 15:09:34 register: /diskspace (df -h)
Пример вывода:
2017/02/03 15:09:34 register: /ps (ps aux)
2017/02/03 15:09:34 listen http://:8080/
Вы заметили приведенную выше команду? Я не упомянул IP-адрес моей системы. Shell2http будет работать без упоминания IP-адреса или имени хоста.
Теперь ваш друг может просмотреть выходные данные о дисковом пространстве по URL-адресу – http://IP-адрес:8080/diskspace, а также просмотреть выходные данные команды "ps" по URL-адресу – http://IP-адрес: 8080/ps.
Вывод дискового пространства:
Вывод команды PS:
Отказ от ответственности. Используйте инструмент Shell2http с осторожностью только внутри доверенной сети. Ваш сервер может быть легко скомпрометирован, если вы не приняли необходимые меры предосторожности.
Ресурс:
- shell2http на GitHub