Команда finger

Команда finger позволяет использовать утилиту с соответствующим именем для получения информации о пользователях локальной или удаленной системы. Среди выводимой утилитой информации можно выделить имя учетной записи пользователя, его полное имя, имя устройства рабочего терминала, время бездействия, время входа в систему, номер и телефон офиса, путь к домашней директории, путь к исполняемому файлу командной оболочки, количество непрочитанных электронных писем, а также название рабочего проекта и выполняемое в рамках него задание.

Для обращения к системам в рамках локальной сети достаточно использовать символ @ и имя узла, либо его IP-адрес. В этом случае утилита задействует протокол finger, описанный в рамках рабочего предложения RFC1196 и реализованный в рамках одного из установленных на удаленной системе finger-серверов, например, fingerd. Кстати, существует методика сокрытия учетных записей пользователей от запросов из сети, заключающаяся в создании в домашних директориях этих пользователей файлов с именами .nofinger.

Базовый синтаксис команды выглядит следующим образом:

$ finger [параметр] [имя пользователя 1 ...]

Очевидно, что утилита способна выводить информацию сразу о нескольких пользователях. В случае использования без каких-либо параметров и имен пользователей, она выведет таблицу со списком пользователей, работающих с системой в данное время. Таблица должна содержать следующие столбцы:

  • Login — имя учетной записи пользователя
  • Name — полное имя пользователя
  • Tty — имя устройства рабочего терминала пользователя
  • Idle — время бездействия пользователя
  • Login time — время входа пользователя в систему
  • Office — номер офиса пользователя
  • Office phone — номер рабочего телефона пользователя

Среди параметров следует выделить параметр -l позволяющий получить не только приведенную выше информацию о пользователе, но и такие параметры его учетной записи, как:

  • Directory — путь к домашней директории пользователя
  • Shell — путь к исполняемому файлу командной оболочки пользователя

а также информацию о количестве непрочитанных электронных писем, названии рабочего проекта и выполняемом в рамках него задании. Две последние строки утилита получает из текстовых файлов в домашних директориях пользователей с именами .project и .plan соответственно.

Что касается других параметров, то параметр -p позволяет игнорировать файлы с информацией о рабочем проекте и выполняемом в рамках него задании, а параметр -m позволяет осуществлять поиск лишь по именам учетных записей пользователей без учета их реальных имен.

Установка утилиты

В первую очередь вам придется установить рассматриваемую утилиту; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды.

Команда для Linux Mint, Ubuntu, Debian, Bodhi Linux:

$ sudo apt-get install finger

Команда для Fedora Workstation:

$ sudo dnf install finger

Примеры использования

Получение информации об активных пользователях

Для получения информации об активных пользователях системы достаточно использовать утилиту finger без каких-либо параметров.

$ finger
finger: /dev//seat0: No such file or directory
Login     Name       Tty      Idle  Login Time    Office     Office Phone
alex      Alex       seat0          Aug 1 14:44 (login screen)
alex      Alex      *:0             Aug 1 14:44 (:0)

С системой работает единственный пользователь, вошедший посредством графического менеджера сессий (login screen).

Для получения развернутой информации может быть задействован параметр -l:

$ finger -l
finger: /dev//seat0: No such file or directory
Login: alex                             Name: Alex
Directory: /home/alex                   Shell: /bin/bash
On since Tue Aug 1 14:44 (MSK) on seat0 from login screen
On since Tue Aug 1 14:44 (MSK) on :0 from :0 (messages off)
No mail.
No Plan.

Если информация о рабочем проекте не требуется, может быть дополнительно задействован параметр -m:

$ finger -lp
finger: /dev//seat0: No such file or directory
Login: alex                             Name: Alex
Directory: /home/alex                   Shell: /bin/bash
On since Tue Aug 1 14:44 (MSK) on seat0 from login screen
On since Tue Aug 1 14:44 (MSK) on :0 from :0 (messages off)
No mail.

Вывод стал немного компактнее.

Получение информации об интересующих пользователях

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

$ finger root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
Never logged in.
No mail.
No Plan.

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

$ finger -p root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
Never logged in.
No mail.

Очевидно, что информация о рабочем проекте не выводится.

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

$ finger -p root alex
finger: /dev//seat0: No such file or directory
Login: root                           Name: root
Directory: /root                      Shell: /bin/bash
Never logged in.
No mail.

Login: alex                           Name: Alex
Directory: /home/alex                 Shell: /bin/bash
On since Tue Aug 1 14:44 (MSK) on seat0 from login screen
On since Tue Aug 1 14:44 (MSK) on :0 from :0 (messages off)
No mail.

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