Мониторим сессию удаленного админа при помощи screen

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

imageНедавно мне пришлось, что называется, перебороть себя. Дать доступ на свой любимый сервер некоему чужаку. Он натоптал своими грязными ботинками в моей уютной домашней директории, мацал косматыи лапами мои опрятные скрипты инициализации, рылся в логах, натащил в /opt какого-то барахла непонятно откуда. В общем, вел себя, как у себя дома.

Шучу, конечно. Удаленно зашел техник, установил специализированый софт своей фирмы, и удалился восвояси. Но, как говорится, в каждой шутке есть доля правды. Я довольно долго настаивал, чтобы фирма выслала свой софт и инструкции по установке. После того, как стало ясно, что этот номер не пройдет, стал обдумывать, как проконтролировать удаленного работника.

Собственно, решение основано на программе screen. Это консольных оконный менеджер, про который на хабре уже писали.

Устанавливаем программу screen и пишем вот такой скрипт:
#!/bin/sh
already_up=`pgrep screen`
if [ -z "$already_up" ]
then   
    screen -L -S Shared /bin/bash -l
else   
    screen -x Shared
fi

Скрипт при запуске проверяет, есть ли уже запущенный screen. Если нет, то запускает новую сессию «Shared», если screen уже запущен, присоединяется к сессии «Shared».

Удаленному работнику этот скрипт будет шеллом. Сохраняем скрипт в /usr/local/bin/get_in.sh и делаем его исполняемым.

Теперь добавим аккаунт для удаленного работника и изменим его шелл по-умолчанию на get_in.sh. У меня в /etc/passwd появилась вот такая запись:
tech:x:503:503::/home/tech:/usr/local/bin/get_in.sh

Последний штрих. В /home/tech/.screenrc добавляем строчку:
logfile /tmp/screenlog-%Y%m%d-%c:%s

Благодаря ей screen будет записывать в лог все, что будет происходить в консоли.

Теперь все готово к приходу гостей. Отсылаем удаленному работнику пароль от tech, сами заходим как tech (и, если нужно, делаем «su -»), и ждем. Все, что делает техник у себя в терминале автоматически отображается и в моей консоли.

Чего же мы, на самом деле, добились:
  • Контроль/мониторинг в реальном времени всего, что происходит в удаленном терминале техника
  • Логгирование комманд и их вывода
  • Нет необходимости раскрывать пароль суперпользователя
Источник: https://habr.com/ru/post/572244/


Интересные статьи

Интересные статьи

Американские военные всерьез рассматривают возможность доставки грузов в разные страны при помощи мощных ракет. Слухи об этом появились давно: рассуждения высокопоставленных военных поя...
Привет, Хабр! Среди рассматриваемых нами фреймворков для сложной обработки данных на Java есть и Apache Flink. Хотим предложить вам перевод неплохой статьи из блога Analytics Vidhya на...
Как быстро определить, что на отдельно взятый сайт забили, и им никто не занимается? Если в подвале главной страницы в копирайте стоит не текущий год, а старый, то именно в этом году опека над са...
Получить трафик для интернет-магазина сегодня не проблема. Есть много каналов его привлечения: органическая выдача, контекстная реклама, контент-маркетинг, RTB-сети и т. д. Вопрос в том, как вы распор...
Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и...