Кто сейчас в системе? Изучаем команду who в Linux

Кто сейчас в системе? Изучаем команду who в Linux

Вы когда-нибудь задумывались, кто еще работает на вашем Linux-сервере прямо сейчас? Или вам нужно быстро проверить, не затесался ли среди пользователей незваный гость? Вам больше не придется гадать.

Команда `who` — ваш надежный страж, который знает о всех активных пользователях абсолютно все. Она моментально покажет, кто вошел в систему, когда это произошло и через какой терминал.

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

Хотите увидеть только список имен и количество активных сессий? Легко. Нужна подробная таблица с IP-адресами и статусами терминалов? И это не проблема. Мы покажем вам, как с помощью простых опций превратить `who` в мощный инструмент для администрирования.

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

Перестаньте работать вслепую. Освойте команду `who` и получите полный контроль над пользователями вашей системы. Листайте ниже, чтобы узнать все секреты этого незаменимого инструмента!


Название команды who Linux полностью отображает ее функциональность — она служит для получения информации о пользователях, которые подключены к системе, в том числе и об терминальных сессиях, через которые происходит подключение.

При выполнении команды используются данные из файла /etc/utmp, хотя можно прописать в терминале и другой файл (как правило, используют /etc/wtmp либо /etc/inittab).


Содержание статьи

Синтаксис who

Синтаксис этой команды достаточно прост и выглядит так:

who опции имя_файла аргументы

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

Также можно прописывать команду в виде who am i — тогда она будет идентифицировать конкретно того пользователя, который работает сейчас в терминале (аналогично опции -m).

Опции who

Используя различные опции, можно получать именно ту информацию, которая нужна здесь и сейчас:

  • -a (--all) — включает в себя все основные опции.
  • - b (--boot) — показывает время загрузки операционной системы.
  • -d (--dead) — выводит перечень зомби-процессов.
  • - H (--heading) — никак не влияет на получаемую информацию, зато добавляет колонкам заголовки и помогает понять что где находится.
  • -m — показать пользователя, который сейчас работает в терминале.
  • -r — вывести текущий уровень запуска (runinit);
  • -t — показать последнее изменение системных часов;
  • -s вывести только имя, терминальную сессию и время.
  • -q вывести количество авторизованных пользователей.
  • -T — данные о терминальной сессии.
  • -u — показать активных пользователей.
  • --ips — вместо названия хостов показывает ips.
  • --lookup — используется в сочетании с --ips, выводит данные, которые основываются на сохраненном IP, если он доступен, а не на названии хоста.

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

Используя опцию -a, мы получаем максимум данных, которыми команда готова снабдить нас без каких-либо дополнительных указаний. В состав этой опции входят опции -b, -d, --login, -p, -r, -t, -T, -u:

who -a

Кто сейчас в системе? Изучаем команду who в Linux

Этих данных больше, чем при простом использовании who:

Кто сейчас в системе? Изучаем команду who в Linux

Чтобы узнать только время загрузки системы, достаточно написать в терминале:

who --login

Кто сейчас в системе? Изучаем команду who в Linux

Нужно узнать текущий уровень запуска (runinit)? Для этого служит команда who в сочетании с опцией -r:

who -r

Кто сейчас в системе? Изучаем команду who в Linux

При использовании опции -s выводятся значения NAME, LINE и TIME — информация, идентичная той, что будет получена без использования каких-либо опций. Все то же самое, но уже с добавлением данных о состоянии терминальной сессии, показывает опция -T.

Состояние — это возможность принимать сообщения от других терминалов. Если рядом с названием терминальной линии стоит «+», как на скриншоте, значит, сообщения могут быть приняты от любого стороннего терминала, в противном случае значение примет вид «-». Если вместо плюса или минуса там находится вопросительный знак, то линия неисправна:

who -T

Кто сейчас в системе? Изучаем команду who в Linux

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

who -q

Кто сейчас в системе? Изучаем команду who в Linux

С помощью -u можно узнать информацию о тех пользователях, которые активны в данный момент:

who -u -H

Кто сейчас в системе? Изучаем команду who в Linux

На этом же скрине видны изменения, которые происходят при использовании опции -H — у колонок с данными появились заголовки.А вот и зомби-процессы, которые показывает опция -d:

who -d

Кто сейчас в системе? Изучаем команду who в Linux

Кстати, поле EXIT при использовании этой опции не выводится. Чтобы увидеть его, следует использовать -a.

Выводы

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

Оставить комментарий


Кликните на изображение чтобы обновить код, если он неразборчив