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.

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 сменить имя root

Это руководство покажет вам, как посмотреть список пользователей в системах 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, мы можем использовать следующую команду:

Если пользователь существует, приведённая выше команда распечатает краткую информацию о нём. Если нет вывода, что означает, что пользователя не существует.

Читайте также:  Посмотреть содержимое флешки linux

Мы также можем проверить, существует ли пользователь, не используя команду 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

как узнать список пользователей linux

Привет всем любителям и почитателям альтернативных операционных систем! Я, конечно, чаще всего работаю в Windows, но и с «Пингвином» приходится довольно часто общаться. Недавно мне понадобилось посмотреть список пользователей из старенького файлового сервера на Ubuntu Linux чтобы завести их всех на новом, более мощном под управлением CentOS. Старый уже практически отжил своё и вот-вот должен накрыться, но пока ещё запускается.
Итак, чтобы вывести список пользователей Линукс в консоли, достаточно просто вывести содержимое системного файла passwd , который лежит в директории /etc . Он содержит полную информацию о каждом логине.

смотрим пользователей ubuntu debian fedora

Делается это с помощью команды:

Чтобы исключить из списка системные учётные записи и вычленить только несистемные логины, воспользуйсь вот таким вариантом:

Если полная информация не нужна и достаточно всего лишь логинов, то лучше использовать вот такую команду:

как узнать список пользователей линукс

Мне именно такой вариант был удобнее, потому как я просто скопировал его и вставил в лист Excel, получив в каждой строчке по логину.

Есть и ещё один неплохой вариант получить список пользователей Linux (Ubuntu, Fedora, CentOS и т.д.) в консоли — это утилита getent . Она используется для того, чтобы выполнить чтение информации по базам данных операционной системы и вывести результат поиска. Команда будет выглядеть так:

Результат выполнения будет таким:

команда getent linux

И ещё! Иногда надо посмотреть список активных пользователей Linux, то есть тех, которые сейчас залогинен в системе. Для этого надо воспользоваться другой командой:

Этим Вы вызовите системную утилиту users, которая перечислит все текущие логины, которые подключились к системе в отсортированном по имени виде.
Альтернативным вариантом может служить команда:

как посмотреть пользователей linux

То есть Вы увидите таблицу, где будут отображены все виртуальные консоли с залогиненными в них юзерами.

Источник

Оцените статью
Adblock
detector