Ответ
В Linux информация о пользователях хранится в текстовой базе данных. Основной способ получить полный список — обратиться к ней напрямую или с помощью специальных утилит.
1. Чтение файла /etc/passwd
Это самый прямой способ. Файл /etc/passwd содержит информацию обо всех локальных пользователях системы. Каждая строка представляет одного пользователя с полями, разделенными двоеточием (:).
cat /etc/passwd
2. Использование команды getent (рекомендуется)
Утилита getent (get entries) запрашивает данные из сконфигурированных системных баз (NSS). В отличие от cat /etc/passwd, она также покажет пользователей из сетевых служб, таких как LDAP или NIS, если они используются в системе. Это более универсальный метод.
getent passwd
Как вывести только имена пользователей?
Для извлечения первого поля (имени пользователя) из вывода используйте утилиту cut.
# -d':' — установить разделитель-двоеточие
# -f1 — выбрать первое поле
getent passwd | cut -d: -f1
Как отличить системных пользователей от обычных?
Системные пользователи обычно имеют идентификатор пользователя (UID) меньше 1000. UID — это третье поле в строке /etc/passwd. Для их фильтрации удобно использовать awk.
# Вывести всех системных пользователей (UID < 1000)
awk -F: '$3 < 1000 {print $1}' /etc/passwd