Jabber-Bot для организации терминального доступа к UNIX-системе (проект) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Какие будут использоваться технологии?)
(Критерии оценки)
Строка 46: Строка 46:
  
 
=== Критерии оценки ===
 
=== Критерии оценки ===
4 балла. Реализован сервер, который принимает запросы через протокол Jabber и выполняет команды от имени того пользователя, из под которого запущен сам сервер
+
4 : Реализован сервер, который принимает запросы через протокол Jabber и выполняет команды от имени того пользователя, из под которого запущен сам сервер
  
6 баллов. Сервер Поддерживает запуск команд от имени произвольного пользователя в соответствии с указанным в конфигурации соответствием JabberID->login
+
6 : Сервер Поддерживает запуск команд от имени произвольного пользователя в соответствии с указанным в конфигурации соответствием JabberID->login
  
8 баллов. Сервер поддерживает авторизацию по имени пользователя и паролю
+
8 : Сервер поддерживает авторизацию по имени пользователя и паролю
  
 
+1 балл.  Поддержка управления запущенными командами (остановка процесса, скрытие/отображение ввода)
 
+1 балл.  Поддержка управления запущенными командами (остановка процесса, скрытие/отображение ввода)

Версия 13:51, 24 ноября 2015

Ментор Яковлев Виктор Вадимович
Учебный семестр Весна 2016
Учебный курс 1-й курс
Максимальное количество студентов, выбравших проект: 8



Что это за проект?

Протокол Jabber предназначен для мгновенной передачи сообщений (как ICQ, Skype), используется в Google Talk (Hangouts), и Facebook Chat. Jabber-роботом (ботом) является специальный аккаунт в этой сети, сообщения в котором «читает» и «пишет» не человек, а программа. Боты могут быть реализованы как на стороне Jabber-сервера в виде plugin'а, так и в виде обычной клиентской программы, которая, с точки зрения сервера, не отличается от обычного чат-клиента.

Во время формирования ответа, боты могут выполнять какие‑либо побочные действия. Например, бот системы Youtrack (https://www.jetbrains.com/youtrack/) позволяет открывать новые задачи и выполнять действия над существующими задачами с помощью команд, отправляемых в виде сообщений.

Для терминального доступа к UNIX‑подобным системам используется протокол SSH; для доступа к ним из Windows, как правило, используется программа PuTTY. Недостатком такого подхода является, во первых, необходимость в специальной программе для Windows, а во‑вторых, прекращение выполнения команд при обрыве соединения. Последняя проблема обычно решается с помощью программ screen или tmux на стороне сервера, но требует дополнительных действий от пользователя.

Требуется реализовать Jabber-робот (в виде клиентской программы), который принимает команды от пользователя и выполняет их на том компьютере, где этот бот запущен. В качестве ответа робот передает текст с потоков вывода и ошибок выполненных команд. В случае разрыва соединения, удаленное выполнение программы не должно прерываться, а результат работы пользователь сможет увидеть после появления подключения к сети.

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

Чему вы научитесь?

  • Реализация сетевого взаимодействия на верхних уровнях модели OSI
  • Особенности администрирование UNIX-подобных систем

Какие начальные требования?

  • Знание технического английского языка для чтения документации
  • Знание языка программирования Python
  • Знание или желание изучить систему Linux на уровне системного администратора

Какие будут использоваться технологии?

  • Python-библиотеки для работы с протоколом XMPP (SleekXMPP или pyxmpp2)
  • Низкоуровневые аспекты ОС: процессы, пользователи, группы

Темы вводных занятий

Краткое содержание курса операционных систем, в котором будут рассмотрены темы про процессы, и организацию прав доступа между пользователями.

Направления развития

Можно реализовать поддержку управления запущенными задачами.

Критерии оценки

4 : Реализован сервер, который принимает запросы через протокол Jabber и выполняет команды от имени того пользователя, из под которого запущен сам сервер

6 : Сервер Поддерживает запуск команд от имени произвольного пользователя в соответствии с указанным в конфигурации соответствием JabberID->login

8 : Сервер поддерживает авторизацию по имени пользователя и паролю

+1 балл. Поддержка управления запущенными командами (остановка процесса, скрытие/отображение ввода)

+1 балл. Интеграция сервера в системное окружение systemd

+1 балл. Результат работы оформлен в виде пакета rpm или deb

Ориентировочное расписание занятий

В зависимости от расписания