- How can I display all users and groups with a command?
- 2 Answers 2
- You must log in to answer this question.
- Related
- Hot Network Questions
- Subscribe to RSS
- Как вывести список пользователей в Linux
- Список всех пользователей Linux с помощью файла /etc/passwd
- Получение списка всех пользователей с помощью команды getent
- Как проверить, существует ли пользователь в системе Linux
- Системные и обычные пользователи
- Как показать пользователей, имеющих оболочки входа
- Как вывести всех пользователей, имеющих домашний каталог
- Заключение
- Связанные статьи:
- Рекомендуемые статьи:
- 1 Комментарий
- Как посмотреть список пользователей Linux
How can I display all users and groups with a command?
users and groups commands display users currently logged in, and groups a user belongs to respectively.
How to display a list of all users and all groups by command-line?
2 Answers 2
You can display with the help of compgen builtin command as follows:
- To display all users run following command:
However you can also display all users by cut -d «:» -f 1 /etc/passwd .
Nice! it might be preferable to use getent passwd / getent group instead of cat’ing the local files ( getent should work for non-local accounts as well)
Well, on my ubuntu, I have some files created by docker mount with 999:999 as user:group , but unfortunately none of the above commands prints them.
Here we are going to use getent for the detailed the info
We can list the user with the following command:
We can list the group as follows:
To fetch detail a specific user
Replace the lalit with your user name. Lalit will not be in every system 🙂
You can read the more into about getent here
You must log in to answer this question.
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533
Ubuntu and the circle of friends logo are trade marks of Canonical Limited and are used under licence.
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Как вывести список пользователей в Linux
Вы когда-нибудь хотели перечислить всех пользователей в вашей системе Linux или подсчитать количество пользователей в системе? Есть команды для создания пользователя, удаления пользователя, вывода списка пользователей, вошедших в систему, но какова команда для вывода списка всех пользователей в Linux?
Это руководство покажет вам, как посмотреть список пользователей в системах Linux.
Список всех пользователей Linux с помощью файла /etc/passwd
Информация о локальных пользователях хранится в файле /etc/passwd. Каждая строка в этом файле представляет информацию для входа в систему для одного пользователя. Чтобы открыть файл, вы можете использовать cat или less:
Каждая строка в файле содержит семь полей, разделённых двоеточиями, которые содержат следующую информацию:
- Имя пользователя.
- Зашифрованный пароль (x означает, что пароль хранится в файле /etc/shadow).
- Идентификационный номер пользователя (UID).
- Идентификационный номер группы пользователя (GID).
- Полное имя пользователя (GECOS).
- Домашний каталог пользователя.
- Оболочка входа (по умолчанию /bin/bash).
Если вы хотите отображать только имя пользователя, вы можете использовать команды awk или cut для печати только первого поля, содержащего имя пользователя:
awk -F: '< print $1>' /etc/passwd # ИЛИ cut -d: -f1 /etc/passwd
Получение списка всех пользователей с помощью команды getent
Команда getent отображает записи из баз данных, настроенных в файле /etc/nsswitch.conf, включая базу данных passwd, которую можно использовать для запроса списка всех пользователей.
Чтобы получить список всех пользователей Linux, введите следующую команду:
Как видите, вывод такой же, как и при отображении содержимого файла /etc/passwd. Если вы используете LDAP для аутентификации пользователей, getent будет отображать всех пользователей Linux как из файла /etc/passwd, так и из базы данных LDAP.
Вы также можете использовать awk или cut для печати только первого поля, содержащего имя пользователя:
getent passwd | awk -F: '< print $1>' # ИЛИ getent passwd | cut -d: -f1
Аналогичный результат можно получить с помощью команды compgen:
Как проверить, существует ли пользователь в системе Linux
Теперь, когда мы знаем, как составить список всех пользователей, чтобы проверить, существует ли пользователь в нашем Linux-сервере, мы можем просто отфильтровать список пользователей, передав его по конвейеру команде grep.
Например, чтобы узнать, существует ли в нашей системе Linux пользователь с именем mial, мы можем использовать следующую команду:
Если пользователь существует, приведённая выше команда распечатает краткую информацию о нём. Если нет вывода, что означает, что пользователя не существует.
Мы также можем проверить, существует ли пользователь, не используя команду grep, как показано ниже:
Как и раньше, если пользователь существует, команда отобразит информацию для входа в систему.
Если вы хотите узнать, сколько учётных записей пользователей у вас в системе, передайте вывод getent passwd команде wc:
Как видно из вывода выше, на удалённом сервере Linux 510 учётных записи пользователей.
Системные и обычные пользователи
Технической разницы между системой и обычными пользователями нет. Обычно пользователи системы создаются при установке ОС и новых пакетов. В некоторых случаях вы можете создать системного пользователя, который будет использоваться некоторыми приложениями.
Обычные пользователи — это пользователи, созданные пользователем 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:
Значения 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
Как показать пользователей, имеющих оболочки входа
Чтобы вывести список только пользователей с оболочками входа, используйте одну из следующих команд:
cat /etc/passwd | grep -E 'bash|sh|bin|zsh' cat /etc/passwd | grep -E -v 'nologin'
Обратите внимание, что эти команды не равнозначны.
Как вывести всех пользователей, имеющих домашний каталог
Если вы хотите составить список пользователей, у которых есть своя папка в директории /home, то используйте следующую команду:
Заключение
В этом руководстве вы узнали, как составлять список и фильтровать пользователей в вашей системе Linux, а также каковы основные различия между системными и обычными пользователями Linux.
Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian, Linux Mint, Arch Linux и Manjaro.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Связанные статьи:
Рекомендуемые статьи:
1 Комментарий
Добрый вечер! Как человеку всю жизнь пользующемся Windows, не очень понятны вещи: 1) В каких группах состоит пользоватлей (Windows тема) — админ, пользователь и т. д. 2) Зачем столько пользоватлей? (в Windows SYSTEM и User — все.) 3) Зачем столько команд для вывода списка пользователей: less, cut, geten, compgen Сейчас будем массово переходить на Unix. И аналогии с фортачками могут сильно помочь. Спасибо!
Как посмотреть список пользователей Linux
Привет всем любителям и почитателям альтернативных операционных систем! Я, конечно, чаще всего работаю в Windows, но и с «Пингвином» приходится довольно часто общаться. Недавно мне понадобилось посмотреть список пользователей из старенького файлового сервера на Ubuntu Linux чтобы завести их всех на новом, более мощном под управлением CentOS. Старый уже практически отжил своё и вот-вот должен накрыться, но пока ещё запускается.
Итак, чтобы вывести список пользователей Линукс в консоли, достаточно просто вывести содержимое системного файла passwd , который лежит в директории /etc . Он содержит полную информацию о каждом логине.
Делается это с помощью команды:
Чтобы исключить из списка системные учётные записи и вычленить только несистемные логины, воспользуйсь вот таким вариантом:
Если полная информация не нужна и достаточно всего лишь логинов, то лучше использовать вот такую команду:
Мне именно такой вариант был удобнее, потому как я просто скопировал его и вставил в лист Excel, получив в каждой строчке по логину.
Есть и ещё один неплохой вариант получить список пользователей Linux (Ubuntu, Fedora, CentOS и т.д.) в консоли — это утилита getent . Она используется для того, чтобы выполнить чтение информации по базам данных операционной системы и вывести результат поиска. Команда будет выглядеть так:
Результат выполнения будет таким:
И ещё! Иногда надо посмотреть список активных пользователей Linux, то есть тех, которые сейчас залогинен в системе. Для этого надо воспользоваться другой командой:
Этим Вы вызовите системную утилиту users, которая перечислит все текущие логины, которые подключились к системе в отсортированном по имени виде.
Альтернативным вариантом может служить команда:
То есть Вы увидите таблицу, где будут отображены все виртуальные консоли с залогиненными в них юзерами.