- Смотрим список пользователей в Linux
- В графическом интерфейсе
- Gnome
- LXQT
- KDE
- В терминале
- Команда w
- Как вывести список пользователей в Linux
- Получите список всех пользователей с помощью файла /etc/passwd
- Получите список всех пользователей с помощью команды getent
- Проверить, существует ли пользователь в системе Linux
- Системные и обычные пользователи
- Выводы
Смотрим список пользователей в Linux
Рассказываем, как отобразить список пользователей в разных дистрибутивах Linux.
В графическом интерфейсе
Скорее всего, в вашу систему уже установлена какая-то графическая оболочка, и в ней есть программа для просмотра списка пользователей и управления ими.
Gnome
В оболочке Gnome 3 есть встроенная утилита для управления пользователями и группами. Покажу, как использовать ее на примере дистрибутива Ubuntu 18.04.
Если вы пользуетесь другим рабочим столом (KDE или XFCE), но хотите использовать эту утилиту для просмотра и управления пользователями, то сначала придется ее скачать. Для этого:
Нам нужен терминал. В Gnome он так и называется. В KDE вы можете наткнуться на другой вариант, например, на Konsole. Суть одна и та же
Такая команда сработает только в дистрибутивах, где используется пакетный менеджер apt. Это касается Ubuntu и других производных от Debian (нужно уточнять). В Fedora, например, вместо apt-get нужно писать dnf , а в Arch Linux — pacman -s .
LXQT
Если нужна утилита попроще, да и вообще вы хотите использовать компоненты из оболочки LXQT для управления пользователями, то можно проделать следующее:
- Для начала подключим репозиторий с компонентами рабочего стола LXQT. Если этого не сделать, то загрузить программы, связанные с оболочкой, просто не получится. Для этого открываем терминал и вводим туда команду sudo add-apt-repository ppa:lxqt-ppa/ppa .
Стоит отметить, что эта процедура не всегда нужна. Почти во всех дистрибутивах, что я тестировал, этот репозиторий был по умолчанию.
- Дожидаемся ее завершения. Затем вводим команду sudo apt-get update , чтобы обновить список репозиторием и его содержимым.
- После этого вписываем команду sudo apt-get install lxqt-admin . Она установит утилиту для управления пользователями из оболочки LXQT.
- Иконка приложения может не появиться в Dashboard, поэтому придется вводить в терминал команду lxqt-admin-user .
- На этом все. Перед нами появится список основных пользователей Linux. Но это не все. На самом деле их намного больше, и их можно увидеть в других программах.
KDE
Также стоит упомянуть еще один популярный рабочий стол и его компоненты. Вам могут понравиться утилиты для управления пользователями из этой оболочки, поэтому расскажу вам про нее. Для начала загрузим программу kuser.
- Открываем терминал.
- Вводим туда команду sudo add-apt-repository ppa:kubuntu-ppa/ppa , чтобы добавить в систему репозиторий с компонентами KDE. В противном случае вы не получите доступ к компонентам этого рабочего стола.
- Следующей командой устанавливаем утилиту kuser: sudo apt-get install kuser .
Система сама соберет все зависимые компоненты и подгрузит их вместе с утилитой kuser. Поэтому эта процедура может занять довольно много времени
- Затем нужно ввести пароль от учетной записи администратора.
- Потом терминал запросит ввести символ y , чтобы продолжить установку.
- Вероятно, приложение не появится в списке установленных, и для его запуска придется ввести команду в терминал.
В терминале
А теперь речь пойдет о более универсальных методах. Описанные ниже команды и файлы работают во всех дистрибутивах Linux и не требуют загрузки или установки дополнительных компонентов. При этом они дают большое количество информации, которую можно оформить по своему желанию.
Команда w
Да, все просто. Достаточно ввести в терминал любого Linux-дистрибутива единственный символ и перед вами появится список пользователей, которые авторизовались в системе и прямо сейчас ее используют.
Она дает не так много информации, но ее гораздо больше, чем в графическом интерфейсе. Например, указывается время пребывания пользователя в операционной системе.
Как вывести список пользователей в Linux
Вы когда-нибудь хотели перечислить всех пользователей в вашей системе Linux или подсчитать количество пользователей в системе? Есть команды для создания пользователя, удаления пользователя, вывода списка пользователей, вошедших в систему, но какова команда для вывода списка всех пользователей в Linux?
Это руководство покажет вам, как составить список пользователей в системах Linux.
Получите список всех пользователей с помощью файла /etc/passwd
Информация о локальном пользователе хранится в /etc/passwd . Каждая строка в этом файле представляет информацию для входа в систему для одного пользователя. Чтобы открыть файл, вы можете использовать cat или less :
Каждая строка в файле содержит семь полей, разделенных двоеточиями, которые содержат следующую информацию:
- Имя пользователя.
- Зашифрованный пароль ( x означает, что пароль хранится в /etc/shadow ).
- Идентификационный номер пользователя (UID).
- Идентификационный номер группы пользователя (GID).
- Полное имя пользователя (GECOS).
- Домашний каталог пользователя.
- Оболочка входа (по умолчанию /bin/bash ).
Если вы хотите отображать только имя пользователя, вы можете использовать команды awk или cut для печати только первого поля, содержащего имя пользователя:
root daemon bin sys sync . . sshd vagrant jack anne
Получите список всех пользователей с помощью команды getent
Команда getent отображает записи из баз данных, настроенных в файле /etc/nsswitch.conf , включая базу данных passwd , которую можно использовать для запроса списка всех пользователей.
Чтобы получить список всех пользователей Linux, введите следующую команду:
Как видите, вывод такой же, как и при отображении содержимого файла /etc/passwd . Если вы используете LDAP для аутентификации пользователей, getent отобразит всех пользователей Linux как из файла /etc/passwd и из базы данных LDAP.
Вы также можете использовать awk или cut для печати только первого поля, содержащего имя пользователя:
Проверить, существует ли пользователь в системе Linux
Теперь, когда мы знаем, как составить список всех пользователей, чтобы проверить, существует ли пользователь в нашем Linux-сервере, мы можем просто отфильтровать список пользователей, передав его по конвейеру команде grep .
Например, чтобы узнать, существует ли в нашей системе Linux пользователь с именем jack мы можем использовать следующую команду:
Если пользователь существует, приведенная выше команда распечатает информацию для входа в систему. Нет вывода, что означает, что пользователь не существует.
Мы также можем проверить, существует ли пользователь, не используя команду grep как показано ниже:
Как и раньше, если пользователь существует, команда отобразит информацию для входа в систему.
Если вы хотите узнать, сколько учетных записей пользователей у вас в системе, getent passwd вывод getent passwd команде wc :
Как видно из вышеприведенного вывода, в моей системе Linux 33 учетных записи пользователей.
Системные и обычные пользователи
Технической разницы между системой и обычными (обычными) пользователями нет. Обычно пользователи системы создаются при установке ОС и новых пакетов. В некоторых случаях вы можете создать системного пользователя, который будет использоваться некоторыми приложениями.
Обычные пользователи — это пользователи, созданные пользователем root или другим пользователем с привилегиями sudo. Обычно у обычного пользователя есть настоящая оболочка входа в систему и домашний каталог.
У каждого пользователя есть числовой идентификатор пользователя, называемый UID. Если не указан при создании нового пользователя с помощью команды useradd , UID будет автоматически выбран из файла /etc/login.defs зависимости от UID_MIN и UID_MIN .
Чтобы проверить значения UID_MIN и UID_MIN в вашей системе, вы можете использовать следующую команду:
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
UID_MIN 1000 UID_MAX 60000
Из выходных данных выше мы видим, что все обычные пользователи должны иметь UID от 1000 до 60000. Знание минимального и максимального значения позволяет нам запрашивать список всех обычных пользователей в нашей системе.
Команда ниже перечислит всех обычных пользователей в нашей системе Linux:
vagrant:x:1000:1000:vagrant. /home/vagrant:/bin/bash jack:x:1001:1001. /home/jack:/bin/bash anne:x:1002:1002:Anne Stone. /home/anne:/bin/bash patrick:x:1003:1003:Patrick Star. /home/patrick:/usr/sbin/nologin
UID_MIN и UID_MIN вашей системы могут отличаться, поэтому более общая версия приведенной выше команды будет:
eval getent passwd <$(awk '/^UID_MIN/ ' /etc/login.defs)..$(awk '/^UID_MAX/ ' /etc/login.defs)>
Если вы хотите распечатать только имена пользователей, просто направьте вывод в команду cut :
eval getent passwd <$(awk '/^UID_MIN/ ' /etc/login.defs)..$(awk '/^UID_MAX/ ' /etc/login.defs)> | cut -d: -f1
Выводы
В этом руководстве вы узнали, как составлять список и фильтровать пользователей в вашей системе Linux, а также каковы основные различия между системными и обычными пользователями Linux.
Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.