Как посмотреть всех пользователей в ОС Linux: вывод списка
В некоторых ситуациях полезно посмотреть пользователей операционной системы (ОС). Допустим, какой-то процесс потребляет много ресурсов — вы открываете список пользователей, сопоставляете процессы с конкретными из них и находите, что нужно закрыть. Или сотрудник сообщает сисадмину, что его ноутбук работает странно. При подозрении на взлом специалист проверит список пользователей и посмотрит, есть ли среди них кто-то незнакомый, чтобы быстро закрыть ему доступ.
В статье расскажем о командах, которые позволяют посмотреть список пользователей: всех, которые есть в системе, активных, кто какие действия выполняет, каково время сессии.

- Файл /etc/passwd: основное хранилище данных о пользователях
- Просмотр имен пользователей с помощью cut и getent
- Варианты использования команды getent
- Просмотр активных пользователей
- Просмотр групп и их пользователей
- Дополнительные инструменты и графические интерфейсы (GUI) для работы с пользователями
- Заключение
Файл /etc/passwd: основное хранилище данных о пользователях
Файл /etc/passwd — это главный текстовый документ в Linux-системах, который содержит информацию о всех учетных записях. Каждая строка соответствует одной учетной записи и состоит из семи полей, которые разделены двоеточиями:

Где:
username — логин для входа в систему.
x— раньше это было поле для хранения пароля, но теперь поле почти всегда содержит букву x. Это означает, что хеш пароля хранится в защищенном файле /etc/shadow.
User ID (UID) — числовой идентификатор пользователя: UID от 0 до 999 обычно относятся к системным аккаунтам, а UID 1 000 и выше — к обычным пользователям.
Group ID (GID) — идентификатор первичной группы, или число, которое определяет группу, к которой относится пользователь.
GECOS, или комментарий— необязательная информация, например полное имя человека, его должность или email.
Домашний каталог (home_directory) — путь к домашней директории пользователя.
Командная оболочка (login_shell) — интерпретатор, который запускается первым при входе в систему. Программа обрабатывает текстовые команды от пользователя и преобразует их в понятные операционной системе инструкции.
Как открыть /etc/passwd. Расскажем о трех способах, для каждого из них вам понадобится открыть терминал и ввести там нужную команду.
1. Самый простой вариант — выполнить команду cat:

После выполнения содержимое файла /etc/passwd построчно выведется в терминале.
2. Использовать следующие команды, чтобы упростить просмотр файла. Эти две команды удобны для навигации по длинному списку. Первая:
Вторая:
3. Открыть /etc/passwd в любом текстовом редакторе. Примеры команд в терминале для просмотра файла в разных программах:

Просмотр имен пользователей с помощью cut и getent
Команда cut. В файле /etc/passwd каждая строка имеет одинаковую структуру. cut умеет резать строки по разделителю, то есть двоеточию, и брать сведения только из нужных полей.
Пример конкретной команды в терминале:

Где:
cut — сама команда;
-d: — устанавливает двоеточие (:) как символ разделителя;
-f1 — указывает, что нужно вывести информацию только из первого поля;
/etc/passwd — файл, из которого надо взять сведения.
В результате выполнения команды вместо строк с семью полями вы увидите только одно поле. Вывод будет таким:
Команда getent обращается к системным базам данных Linux, в частности к passwd, а не к файлам напрямую. Чтобы получить точный результат, желательно использовать именно getent — команда даст полную информацию обо всех известных системе пользователях независимо от текущего состояния кеша:

Варианты использования команды getent
В терминале getent можно комбинировать с другими командами. В этом разделе приведем примеры, как это можно делать.
1. Прочесть файл /etc/passwd. getent выступит как аналог команды cat:
2. Найти конкретного пользователя:
Если пользователь существует, команда покажет строку с информацией о нем. Если нет, в терминале ничего не будет.
3. Найти в системе себя:
4. Посчитать общее количество пользователей:
5. Показать только пользователей с UID ≥ 1 000, то есть обычных пользователей:

Просмотр активных пользователей
Узнать, кто из пользователей находится в системе, можно с помощью команд who и w. Рассмотрим, что делает каждая из них и когда какую использовать.
Команда who покажет список пользователей, которые подключены в данный момент, время подключения и тип сессии.
Как читать вывод:
user1 — имя пользователя;
tty1 — физический терминал, то есть консоль прямо за компьютером;
pts/0 — псевдотерминал, обычно это SSH-подключение или терминал в графической среде;
дата и время — когда пользователь вошел в систему;
(192.168.1.10) — IP-адрес, откуда подключились.

Команда w дает более подробную информацию об активных пользователях, включая их текущую активность.
Как читать вывод:
Первая строка — общая информация о системе:
11:25:03 — текущее время;
up 1:00 — система работает один час;
3 users — количество активных пользователей;
load average — загрузка системы.
Остальные данные из вывода представлены в виде таблицы. В строках указаны пользователи, в столбцах:
USER — имя пользователя;
TTY — тип терминала;
FROM — откуда было подключение;
LOGIN@ — время входа;
IDLE — время бездействия;
JCPU, PCPU — время процессора;
WHAT — что пользователь делает прямо сейчас.
Просмотр групп и их пользователей
Группы — это способ объединять пользователей для удобного управления правами доступа. Например, можно дать права на папку не каждому пользователю отдельно, а всей группе сразу. Чтобы посмотреть, какие пользователи включены в группу, можно использовать команды getent group и groups. Рассмотрим каждую из них.
Команда getent group позволяет просматривать группы и их членов. Пример вывода:
Где:
adm — название группы;
x — пароль, но он обычно не используется, а хранится в /etc/gshadow;
4 — GID, или Group ID, уникальный номер группы;
user1,user2 — список участников группы через запятую.
Команда groups показывает, в каких группах состоит конкретный пользователь. Примеры использования:

Дополнительные инструменты и графические интерфейсы (GUI) для работы с пользователями
В Linux есть графические утилиты для управления пользователями, но их доступность и функциональность зависят от дистрибутива и окружения рабочего стола. Расскажем о распространенных инструментах, которые применяются в распространенных окружениях.
GNOME Users используется преимущественно в среде рабочего стола GNOME: Ubuntu, Fedora, elementary OS. Хороший выбор для новичков, позволяет создавать новые учетные записи, управлять существующими пользователями, устанавливать и изменять пароли, назначать административные привилегии.
KDE User Manager входит в состав окружения рабочего стола KDE Plasma, например openSUSE и Kubuntu. Подходит для опытных пользователей и позволяет управлять группами, автоматически создавать домашние папки и устанавливать ограничения для доступа.
Xfce Settings Manager доступен в легковесной среде Xfce: Xubuntu, Manjaro Xfce. Облегченная среда рабочего стола для UNIX-подобных операционных систем. Xfce прост в освоении, предназначен для базовых операций с пользователями и группами, подойдет для маломощных компьютеров и серверов с графическим интерфейсом.

Mate Users используется в среде MATE: Linux Mint Mate, Ubuntu MATE. Аналогичен GNOME Users, но отличается внешним видом и некоторыми деталями реализации. Поддерживает базовые операции по управлению пользователями и правами доступа.
Заключение
Мы рассмотрели команды, с помощью которых можно просматривать списки пользователей, совершаемые ими действия и другую полезную информацию. Это пригодится, когда нужно узнать, кто работает в системе, кто и когда подключился, нет ли в системе незнакомых пользователей или чтобы узнать, какой из процессов тратит больше всего ресурсов.