- Как посмотреть пользователей Ubuntu
- Как посмотреть список пользователей в терминале
- Список пользователей в GUI
- Выводы
- Как вывести список пользователей в Linux
- Список всех пользователей Linux с помощью файла /etc/passwd
- Получение списка всех пользователей с помощью команды getent
- Как проверить, существует ли пользователь в системе Linux
- Системные и обычные пользователи
- Как показать пользователей, имеющих оболочки входа
- Как вывести всех пользователей, имеющих домашний каталог
- Заключение
- Связанные статьи:
- Рекомендуемые статьи:
- 1 Комментарий
Как посмотреть пользователей Ubuntu
Иногда возникает необходимость посмотреть всех зарегистрированных в системе Linux пользователей. Например, для того чтобы узнать не зарегистрирован ли кто лишний в системе, или изменить данные/группу одного из пользователей.
Профессионалы, конечно, же знают как это делается, причем кучей способов, а вот для новичков это может стать проблемой. В этой статье я покажу как посмотреть список пользователей Ubuntu несколькими способами — с помощью терминала и графических утилит.
Как посмотреть список пользователей в терминале
Сперва рассмотрим как посмотреть пользователей ubuntu в терминале Linux, так как это наиболее универсальный способ, который работает почти во всех дистрибутивах. В операционной системе Linux есть специальный файл в котором хранится информация обо всех пользователях. Это /etc/passwd. Записи в файле имеют следующий синтаксис:
имя_пользователя пароль ид ид_группы группа домашний_каталог оболочка
Надо заметить, что вместо пароля теперь записывается буква X это было сделано для безопасности. Все пароли пользователей хранятся теперь в другом файле. Остается только набрать команду и вы узнаете список пользователей linux:
Пользователи с ID меньше 1000 — системные, они были созданы во время установки некоторых сервисов для более безопасной их работы. Этих пользователей трогать не следует. В этом примере в системе вручную зарегистрирован только один пользователь — Sergiy.
В файле /etc/passwd слишком много лишних данных, если вам нужны только имена пользователей, можно отфильтровать вывод:
Так вы можете посмотреть всех пользователей Ubuntu. С зарегистрированными пользователями разобрались. Но намного интереснее посмотреть какие пользователи сейчас активны в системе, и какие команды они выполняют. Для этого есть утилита w:
Здесь выводятся все выполняемые пользователями команды. Если пользователь сейчас выполняет в терминале несколько команд, то будет отображено два пункта для одного пользователя.
Кроме того, вы можете посмотреть историю входов пользователей в систему. Для этого есть команда last, она выводит информацию на основе лога /var/wtmp:
Дату последнего входа для каждого пользователя вы можете посмотреть с помощью команды lastlog:
Если пользователь никогда не входил, команда так и скажет, в противном случае мы увидим дату последнего входа.
Список пользователей в GUI
В Ubuntu зарегистрированными в системе пользователями можно управлять с помощью параметров системы. Откройте утилиту и выберите в самом низу пункт Учетные записи. Здесь уже не будут отображаться системные пользователи. В панели слева — непосредственно сам список, а справа можно изменить данные и настройки:
Для KDE есть более интересная утилита управления пользователями — KUser:
Здесь так же как и в терминале отображены все пользователи, в том числе системные. Можно менять различные данные, в том числе пароли, основную и дополнительную группы и т д.
Как видите, только в терминале вы можете посмотреть более подробную информацию, проверить даты входа и точно узнать не используют ли систему другие люди.
Выводы
Теперь вы знаете как посмотреть список пользователей Ubuntu. Это не очень сложно, но нужно только понять основы того как это работает. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как вывести список пользователей в 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. И аналогии с фортачками могут сильно помочь. Спасибо!