Команда who в Linux выводит список всех зарегистрированных пользователей в системе. Она довольно проста в использовании.
Просто введите who в командной строке, и она покажет всех зарегистрированных пользователей в вашей системе Linux.
root@localhost:~# who root pts/0 2020-02-03 06:48 (152.72.29.73) destroyer pts/1 2020-02-03 07:02 (187.41.92.90) alex pts/2 2020-02-03 07:02 (252.142.106.85)
Имейте в виду, что who показывает только пользователей, которые в данный момент вошли в вашу систему. Есть и другие способы увидеть всех пользователей в системе Linux, например, compgen.
Команда who имеет несколько опций для получения другой конкретной информации о зарегистрированных пользователях.
Вот синтаксис команды who:
who [options] [filename]
Вы уже видели, какую информацию показывает команда who без каких-либо опций. Давайте теперь посмотрим, какие варианты who предоставляет.
Наряду с обычной информацией, вы также можете распечатать время простоя пользователей. Если пользователь ничего не вводил в течение определенного периода времени, это отображается как время простоя.
who -u
Как вы можете видеть в выводе ниже, пользователь destroyer бездействовал в течение 2 минут и 3 секунд.
root@localhost:~# who -u root pts/0 2020-02-03 06:48 . 10669 (152.72.29.73) destroyer pts/2 2020-02-03 07:02 02:03 31528 (187.41.92.90)
Что вы могли бы сделать с этой информацией? Практическое использование заключается в реализации дополнительного уровня безопасности путем автоматического отключения пользователей, которые простаивают более определенного времени.
С опцией -q вы можете отображать только зарегистрированных пользователей и их количество.
root@localhost:~# who -q root destroyer alex # users=3
Это похоже на вывод ‘users command’, за исключением количества зарегистрированных пользователей.
Знаете ли вы, что пользователи могут отправлять сообщения друг другу в терминале Linux, используя такие инструменты командной строки, как mesg ? Конечно, пользователь должен решить, хочет ли он/она получать такие сообщения или нет.
Вы можете проверить, могут ли пользователи отправлять сообщения или нет, используя опцию -T :
who -T
В приведенном ниже выводе «+» означает «да», а «-» означает «нет». Если видишь? Значит неизвестно.
root@localhost:~# who -T root - pts/0 2020-02-03 06:48 (152.72.29.73) destroyer + pts/2 2020-02-03 07:02 (187.41.92.90)
Вроде альтернатива whoami. Он отображает информацию о пользователе, но только для себя (то есть пользователя, связанного с текущим терминалом).
who -m
В некоторой степени похожий на команду uptime, вы можете получить информацию о последней загрузке вашей системы, используя опцию -b команды who:
who -b
Как вы можете видеть, наш тестовый сервер последний раз загружался в 09:41 19 декабря 2019 года.
root@localhost:~# who -b system boot 2019-12-19 09:41
Распечатать имя хоста зарегистрированных пользователей
Это может работать для пользователей в одной подсети. С опцией –lookup вы можете отобразить имя хоста вошедших в систему пользователей.
Вы , наверное , знаете , что в иерархии файловой системы Linux, хранит время выполнения информации и журналов.
Команда who извлекает информацию из/var/run/utmp. Вы можете указать другие файлы журнала, чтобы получить другую информацию.
Например, вы можете получить информацию о последних входах в систему, если вы используете файл/var/log/wtmp.
root@localhost:~# who /var/log/wtmp root pts/0 2020-02-03 06:48 (152.72.29.73) alex pts/1 2020-02-03 07:02 (252.142.106.85) destroyer pts/2 2020-02-03 07:02 (187.41.92.90) alex pts/1 2020-02-03 07:12 (252.142.106.85) alex pts/1 2020-02-03 08:55 (252.142.106.85)
Точно так же вы можете увидеть все неудачные попытки входа в систему, используя файл/var/log/btmp.
root@localhost:~# who /var/log/btmp
Конечно, это зависит от того, настроена ли ваша система для регистрации этой информации.
В конце концов…
Есть еще несколько опций, таких как -H, которые добавляют заголовок в качестве первой строки вывода. Вы всегда можете изучить их через его справочную страницу .
Мы перечислили, как мы считаем, важные примеры команды who. Надеюсь, вам понравится эта краткая статья по Linux.