Finger


Finger — сетевой протокол, предназначенный для предоставления информации о пользователях удалённого компьютера.

Протокол Finger является простым протоколом (описан в RFC 1288), который служит для получения информации о пользователях узлов Интернета. Программа Finger может предоставить данные о списке пользователей, которые работают в данный момент на интересующем компьютере, о конкретном пользователе (дата последнего сеанса входа в систему и т. д.), о списке загруженных задач, о типах интерфейсов (например, терминалов). Первоначальная версия программы была написана Les Earnest в 1971 году. Окончательная версия протокола была подготовлена Earl Killian из Массачусетского Технологического Института и Brian Harvey (SAIL).

Finger базируется на Transmission Control Protocol, используя TCP-порт 79. Данный протокол обеспечивает интерфейс для удаленной информационной программы пользователя (RUIP — Remote User Information Program). Локальная ЭВМ осуществляет TCP-соединение с удаленным узлом через указанный порт. После этого становится доступной программа RUIP и пользователь может посылать ей свои запросы. Каждый запрос представляет собой строку текста. RUIP, получив запрос, анализирует его и присылает ответ, после чего соединение закрывается. Обычно со стороны сервера протокол реализован программой «fingerd», а со стороны клиента — программой «finger», которая предоставляет интуитивный пользовательский интерфейс. Например, в системах Unix, команда finger @foo.bar.net теоретически возвращает список пользователей компьютера по адресу «foo.bar.net» (конечно, только если на нём запущена «fingerd»), а команда finger [email protected] возвращает полную информацию о пользователе «boris», включая имя, фамилию, телефон и содержание файла «.plan» в его домашнем каталоге.

Любые пересылаемые данные должны иметь формат ASCII, не иметь контроля по четности и каждая строка должна завершаться последовательностью CRLF (ASCII 13, за которым следует ASCII 10).

Программа RUIP должна принимать любые запросы Finger. Такие запросы могут иметь следующий формат:
finger [опция] [login1 [login2 ...]]

По умолчанию команда finger выводит в список для каждого пользователя системы Unix на данный момент: