- Как вывести список пользователей в Linux
- Получите список всех пользователей с помощью файла /etc/passwd
- Получите список всех пользователей с помощью команды getent
- Проверить, существует ли пользователь в системе Linux
- Системные и обычные пользователи
- Выводы
- Просматриваем список пользователей в Linux
- Способы проверки списка пользователей
- Способ 1: Программы
- Способ 2: Терминал
- Заключение
- Включение отображения списка пользователей на экране входа
- Включение отображения списка пользователей
- Включение в список доменных пользователей FreeIPA
- Включение в список доменных пользователей Windows AD
Как вывести список пользователей в 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.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Просматриваем список пользователей в Linux
Бывают случаи, когда возникает необходимость узнать, какие пользователи зарегистрированы в операционной системе Linux. Это может потребоваться для того, чтобы определить, есть ли лишние пользователи, нуждается ли какой-то конкретный пользователь или же целая группа из них в изменении личных данных.
Способы проверки списка пользователей
Люди, которые постоянно используют данную систему, могут это сделать с помощью целого ряда методов, а для новичков это весьма проблематично. Поэтому инструкция, которая будет расписана ниже, поможет неопытному пользователю справиться с поставленной задачей. Сделать это можно при помощи встроенного Терминала или же ряда программ с графическим интерфейсом.
Способ 1: Программы
В Linux/Ubuntu управлять зарегистрированными в системе пользователями можно при помощи параметров, работа которых обеспечивается специальной программой.
К сожалению, для графической оболочки рабочего стола Gnome и Unity программы разные. Однако они обе способны предоставить набор опций и инструментов для проверки и редактирования групп пользователей в дистрибутивах Linux.
«Учетные записи» в Gnome
Сначала следует открыть параметры системы и выбрать раздел под названием «Учетные записи». Обратите внимание на то, что системные пользователи здесь уже отображаться не будут. Список зарегистрированных пользователей находится в панели слева, правее есть раздел настроек и изменения данных каждого из них.
Программа «Пользователи и группы» в дистрибутиве с графической оболочкой Gnome установлена всегда по умолчанию, однако если вы ее не находите в системе, то можно провести автоматическую загрузку и установку с помощью выполнения команды в «Терминале»:
sudo apt-get install unity-control-center
KUser в KDE
Для платформы KDE существует одна утилита, пользоваться которой даже гораздо удобнее. Она называется KUser.
В интерфейсе программы отображаются все зарегистрированные юзеры, при необходимости можно увидеть и системных. Эта программа может изменять пароли пользователей, переносить их из одной группы в другую, удалять их в случае необходимости и тому подобное.
Как и в случае с Gnome, в KDE программа KUser установлена по умолчанию, но ее можно удалить. Чтобы произвести установку приложения, выполните команду в «Терминале»:
sudo apt-get install kuser
Способ 2: Терминал
Данный способ является универсальным для большинства дистрибутивов, разработанных на основе операционной системы Linux. Дело в том, что она имеет в своем программном обеспечении специальный файл, где располагается информация относительно каждого пользователя. Такой документ находится по адресу:
Все записи в нем представлены в следующем виде:
- имя каждого из юзеров;
- уникальный идентификационный номер;
- пароль ИД;
- ИД группы;
- название группы;
- оболочка домашнего каталога;
- номер домашнего каталога.
Для повышения уровня безопасности в документе сохраняется пароль каждого из пользователей, но он не отображается. В других модификациях этой операционной системы пароли и вовсе хранятся в отдельных документах.
Полный список пользователей
Вызвать переадресацию в файл с сохраненными данными юзеров можно с помощью «Терминала», введя в него следующую команду:
Если ИД у пользователя имеет меньше четырех цифр, то это системные данные, в которые вносить изменения крайне нежелательно. Дело в том, что они создаются самой ОС в процессе установки для обеспечения наиболее безопасной работы большинства сервисов.
Имена в списке пользователей
Стоит отметить, что в данном файле может быть довольно много данных, которые вам не интересны. Если имеется необходимость узнать только имена и основные сведения, касающиеся пользователей, есть возможность отфильтровать приведенные в документе данные при помощи введения следующей команды:
Просмотр активных пользователей
В ОС, работающей на базе Linux, можно посмотреть не только пользователей, которые были зарегистрированы, но и тех, кто в настоящее время активны в ОС, заодно просмотрев то, какие процессы они используют. Для такой операции применяется специальная утилита, вызываемая командой:
Данная утилита будет выдавать все команды, которые выполняются пользователями. Если он одновременно задействует две и более команд, то они также найдут отображение в выдаваемом списке.
Истории посещений
При необходимости, есть возможность проанализировать активность пользователей: узнать дату последнего их входа в систему. Ей можно воспользоваться на базе лога /var/wtmp. Вызывается он вводом в командной строке следующей команды:
Дата последней активности
Кроме того, в операционной системе Linux можно узнать, когда каждый из зарегистрированных пользователей был последний раз активен – это делает команда lastlog, выполняемая при помощи одноименного запроса:
В этом логе также отображается информация о пользователях, которые никогда не были активными.
Заключение
Как можно заметить, в «Терминале» представлены более детальные сведения, касающиеся каждого пользователя. В нем есть возможность узнать кто и когда входил в систему, определить, пользовались ли ей посторонние люди, и многое другое. Однако для рядового пользователя будет лучшим вариантом воспользоваться программой с графическим интерфейсом, чтобы не вникать в суть команд Linux.
Список пользователей просмотреть достаточно легко, главное понять, на основе чего работает данная функция операционной системы и для каких целей она используется.
Включение отображения списка пользователей на экране входа
Отображение списка пользователей по умолчанию отключено, так как доступность информации о существующих пользователях снижает защищенность информационной системы. Кроме того, при работе в доменах список пользователей может быть слишком велик и расход системных ресурсов на построение такого списка может негативно влиять на работоспособность системы.
Включение отображения списка пользователей
Перейти в закладку «Пользователи»:
Отметить пункт «Показывать список:
При работе в любых доменах для отображения в списке доменных пользователей следует установить значение параметра «Более» большим, чем значения числовых идентификаторов доменных пользователей, которые должны отображаться в списке. Получить значение числового идентификатора пользователя можно командой:
Включение в список доменных пользователей FreeIPA
По умолчанию при включенном отображении списков пользователей доменные пользователи не отображаются. Для включения доменных пользователей в список:
- На сервере FreeIPA:
- Получить билет администратора домена, если он ранее не был получен:
ipa idrange-find
——————
найден 1 диапазон
——————
Имя диапазона: IPADOMAIN0.RU_id_range
Первый идентификатор POSIX диапазона: 1899200000
Количество идентификаторов в диапазоне: 200000
Первый RID соответствующего диапазона RID: 1000
Первый RID вторичного диапазона RID: 100000000
Тип диапазона: local domain range
———————————[domain/)]
Количество возвращённых записей 1
———————————
В примере выше диапазон идентификаторов доменных пользователей начинается с идентификатора 1 899 200 000 и содержит 200 000 идентификаторов, т.е идентификаторы находятся в диапазоне от 1 899 200 000 до 1 899 399 999;
В секции «Идентификаторы системных пользователей» указать границы диапазона так, чтобы идентификаторы доменных пользователей находились внутри этого диапазона, например: