Администраторы Linux должны знать о существующих пользователях в системе Linux по разным причинам, например для того, чтобы определить их роли или привилегии.
Для этого нужно знать команды, которые помогают вывести список всех текущих пользователей в системе Linux.
Сегодня мы рассмотрим различные способы вывода списка пользователей в Linux с указанием или без указания домашнего каталога.
Способ 1. Чтение файла passwd
Самый простой способ вывести список пользователей — прочитать содержимое файла passwd. Например, можно использовать команду cat вместе с путём к файлу passwd, как показано ниже.
cat /etc/passwd
Команда cat также выводит всю остальную информацию о пользователях, которая может вам не понадобиться.
Для этого используйте команду awk для вывода имени пользователя из файла passwd, как показано ниже.
awk -F ":" '{print $1}' /etc/passwd
Способ 2: использование команды Compgen
Как и в случае с командой awk, которая игнорирует все остальные данные, кроме имени пользователя, вы можете использовать команду compgen для выполнения той же задачи без написания длинного кода, как показано ниже.
compgen -u
Способ 3. Использование команды Getent
Как и команда cat, getent содержит все остальные сведения. Эту команду можно использовать для выполнения той же задачи без указания пути к файлу passwd, как показано ниже.
getent passwd
Способ 4. Фильтрация пользователей по домашнему каталогу
Из приведенных выше команд может сложиться впечатление, что они выводят список всех пользователей, созданных вами вручную или с помощью сервисов.
Это правда, что пользователи часто не могут отличить пользователей, созданных ими вручную, от пользователей, созданных сервисами.
Чтобы решить эту проблему, мы можем вывести список пользователей с домашним каталогом, расположенным по пути /home/, с помощью команды awk, как показано ниже.
awk -F ":" '{if($6 = /home/) print $1}' /etc/passwd
Приведенная выше команда выводит список только тех пользователей, чей домашний каталог был создан с помощью команды adduser.
Как видите, я вручную создал двух пользователей, «andreyex» и «test», с их домашними каталогами, используя команду adduser.
Выводы
На рынке есть приложение с графическим интерфейсом, которое выполняет ту же работу, но я его не упоминаю. В конце концов, по моему мнению, Linux без терминала — это наглость.