Поиск по сайту:

Как выполнять команды оболочки через 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

Статьи по данной тематике