Linux перечень всех пользователей

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

Иногда возникает необходимость посмотреть всех зарегистрированных в системе Linux пользователей. Например, для того чтобы узнать не зарегистрирован ли кто лишний в системе, или изменить данные/группу одного из пользователей.

Профессионалы, конечно, же знают как это делается, причем кучей способов, а вот для новичков это может стать проблемой. В этой статье я покажу как посмотреть список пользователей Ubuntu несколькими способами — с помощью терминала и графических утилит.

Как посмотреть список пользователей в терминале

Сперва рассмотрим как посмотреть пользователей ubuntu в терминале Linux, так как это наиболее универсальный способ, который работает почти во всех дистрибутивах. В операционной системе Linux есть специальный файл в котором хранится информация обо всех пользователях. Это /etc/passwd. Записи в файле имеют следующий синтаксис:

имя_пользователя пароль ид ид_группы группа домашний_каталог оболочка

Надо заметить, что вместо пароля теперь записывается буква X это было сделано для безопасности. Все пароли пользователей хранятся теперь в другом файле. Остается только набрать команду и вы узнаете список пользователей linux:

users1

Пользователи с ID меньше 1000 — системные, они были созданы во время установки некоторых сервисов для более безопасной их работы. Этих пользователей трогать не следует. В этом примере в системе вручную зарегистрирован только один пользователь — Sergiy.

В файле /etc/passwd слишком много лишних данных, если вам нужны только имена пользователей, можно отфильтровать вывод:

users2

Так вы можете посмотреть всех пользователей Ubuntu. С зарегистрированными пользователями разобрались. Но намного интереснее посмотреть какие пользователи сейчас активны в системе, и какие команды они выполняют. Для этого есть утилита w:

users

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

Кроме того, вы можете посмотреть историю входов пользователей в систему. Для этого есть команда last, она выводит информацию на основе лога /var/wtmp:

Читайте также:  Code development in linux

users3

Дату последнего входа для каждого пользователя вы можете посмотреть с помощью команды lastlog:

users4

Если пользователь никогда не входил, команда так и скажет, в противном случае мы увидим дату последнего входа.

Список пользователей в GUI

В Ubuntu зарегистрированными в системе пользователями можно управлять с помощью параметров системы. Откройте утилиту и выберите в самом низу пункт Учетные записи. Здесь уже не будут отображаться системные пользователи. В панели слева — непосредственно сам список, а справа можно изменить данные и настройки:

users

Для KDE есть более интересная утилита управления пользователями — KUser:

users1

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

users2

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

Выводы

Теперь вы знаете как посмотреть список пользователей Ubuntu. Это не очень сложно, но нужно только понять основы того как это работает. Если у вас остались вопросы, спрашивайте в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Как вывести список пользователей в Linux

Вы когда-нибудь хотели перечислить всех пользователей в вашей системе Linux или подсчитать количество пользователей в системе? Есть команды для создания пользователя, удаления пользователя, вывода списка пользователей, вошедших в систему, но какова команда для вывода списка всех пользователей в Linux?

Это руководство покажет вам, как посмотреть список пользователей в системах Linux.

Список всех пользователей Linux с помощью файла /etc/passwd

Информация о локальных пользователях хранится в файле /etc/passwd. Каждая строка в этом файле представляет информацию для входа в систему для одного пользователя. Чтобы открыть файл, вы можете использовать cat или less:

Каждая строка в файле содержит семь полей, разделённых двоеточиями, которые содержат следующую информацию:

  • Имя пользователя.
  • Зашифрованный пароль (x означает, что пароль хранится в файле /etc/shadow).
  • Идентификационный номер пользователя (UID).
  • Идентификационный номер группы пользователя (GID).
  • Полное имя пользователя (GECOS).
  • Домашний каталог пользователя.
  • Оболочка входа (по умолчанию /bin/bash).
Читайте также:  Поднимаем dns сервер linux

Если вы хотите отображать только имя пользователя, вы можете использовать команды 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. Обычно у обычного пользователя есть настоящая оболочка входа в систему и домашний каталог.

Читайте также:  Begin programming in linux

У каждого пользователя есть числовой идентификатор пользователя, называемый 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. И аналогии с фортачками могут сильно помочь. Спасибо!

Источник

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