Как посмотреть пользователей в linux
Перейти к содержимому

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

  • автор:

Пользователи в Linux

Linux — система многопользовательская, а потому пользователь — ключевое понятие для организации всей системы доступа в Linux. Когда пользователь регистрируется в системе (проходит процедуру авторизации, например, вводя системное имя и пароль), он идентифицируется с учётной записью, в которой система хранит информацию о каждом пользователе: его системное имя и некоторые другие сведения, необходимые для работы с ним. Именно с учётными записями, а не с самими пользователями, и работает система. Ниже приведён список этих сведений.

Системное имя (user name)

Это то имя, которое вводит пользователь в ответ на приглашение login: . Оно может содержать только латинские буквы и знак “ _ ”. Это имя используется также в качестве имени учётной записи.

Идентификатор пользователя (UID)

Linux связывает системное имя c идентификатором пользователя в системе — UID (User ID). UID — это положительное целое число, по которому система и отслеживает пользователей 1 . Обычно это число выбирается автоматически при регистрации учётной записи, однако оно не может быть совершенно произвольным. В Linux есть некоторые соглашения относительно того, каким типам пользователей могут быть выданы идентификаторы из того или иного диапазона. В частности, UID от “ 0 ” до “ 100 ” зарезервированы для псевдопользователей 2 .

Идентификатор группы (GID)

Кроме идентификационного номера пользователя с учётной записью связан идентификатор группы. Группы пользователей применяются для организации доступа нескольких пользователей к некоторым ресурсам. У группы, так же, как и у пользователя, есть имя и идентификационный номер — GID (Group ID). В Linux каждый пользователь должен принадлежать как минимум к одной группе — группе по умолчанию. При создании учётной записи пользователя обычно создаётся и группа, имя которой совпадает с системным именем 3 , именно эта группа будет использоваться как группа по умолчанию для этого пользователя. Пользователь может входить более чем в одну группу, но в учётной записи указывается только номер группы по умолчанию. Группы позволяют регулировать доступ нескольких пользователей к различным ресурсам.

Полное имя (full name)

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

Домашний каталог (home directory)

Файлы всех пользователей в Linux хранятся раздельно, у каждого пользователя есть собственный домашний каталог, в котором он может хранить свои данные. Доступ других пользователей к домашнему каталогу пользователя может быть ограничен. Информация о домашнем каталоге обязательно должна присутствовать в учётной записи, потому что именно с него начинает работу пользователь, зарегистрировавшийся в системе.

Начальная оболочка (login shell)

Важнейший способ взаимодействовать с системой Linux — командная строка, которая позволяет пользователю вести «диалог» с системой: передавать ей команды и получать её ответы. Для этой цели служит специальная программа — командная оболочка (или интерпретатор командной строки), по-английски — shell. Начальная оболочка (login shell) запускается при входе пользователя в систему в текстовом режиме (например, на виртуальной консоли). Поскольку в Linux доступно несколько разных командных оболочек, в учётной записи указано, какую из командных оболочек нужно запустить для данного пользователя. Если специально не указывать начальную оболочку при создании учётной записи, она будет назначена по умолчанию, вероятнее всего это будет bash.

Все перечисленные данные об учётных записях хранятся в файле /etc/passwd . Сведения о конкретной учётной записи пользователя можно получить с помощью утилиты getent 4 :

[tester@tacit tester]$ getent passwd tester tester:x:506:506:Test Testovitch:/home/tester:/bin/bash [tester@tacit tester]$

Пример 1. Сведения об учётной записи

Первый параметр, passwd — это название базы, в которой нужно производить поиск, оно совпадает с именем соответствующего конфигурационного файла. Второй параметр, tester — это название учётной записи пользователя (системное имя). getent выводит ту строчку /etc/passwd , где описана искомая учётная запись: в ней через “ : ” указаны системное имя, пароль (тут стоит буква “ x ”, потому что пароль спрятан в другом месте, об этом ниже), UID, GID, полное имя, домашний каталог и начальная оболочка.

В Linux пароль пользователя в явном виде не хранится нигде, но только в зашифрованном. В современных системах обычно применяются так называемые «теневые пароли» (shadow passwords), которые хранятся отдельно от остальных сведений об учётной записи, а также позволяют назначать дополнительные ограничения, в частности, «срок годности» пароля. В зависимости от строгости политики безопасности зашифрованные пароли пользователей могут храниться в общем файле /etc/shadow (менее строго) или в отдельном файле shadow для каждого пользователя. В ALT Linux по умолчанию используется схема tcb , реализующая более строгую политику. Для просмотра сведений из файла shadow требуются полномочия суперпользователя, это можно сделать с помощью команды getent passwd tester . Подробнее о возможностях теневых паролей можно прочитать в руководствах shadow(5) и tcb(5) .

Также отдельно хранится информация обо всех группах пользователей в системе, для этого предназначен файл /etc/group . Информацию о конкретной группе можно получить с помощью той же утилиты getent :

[tester@tacit tester]$ getent group audio audio:x:81:yura,fedya [tester@tacit tester]$

Пример 2. Сведения о группе

Запись в файле /etc/group устроена очень просто: сначала идёт имя группы (как и имя учётной записи, потом поле для пароля (здесь опять “ х ”, но пароли для группы используются очень редко), GID, список через запятую названий учётных записей (имён пользователей), входящих в данную группу. Любой пользователь может получить список названий групп, в которых он состоит командой groups , а более подробные сведения о своей или чужой учётной записи командой id имя_пользователя . Принадлежность к группе существенна только в одном отношении — прав доступа, поскольку для каждого файла определён не только пользователь-владелец, но и группа-владелец.

Управление пользователями

Создание пользователей

  • создать запись в /etc/passwd , где присвоить учётной записи уникальное имя, UID и пр.;
  • создать домашний каталог пользователя, обеспечить пользователю доступ к его домашнему каталогу (сделать его владельцем каталога);
  • поместить в домашний каталог стандартное наполнение (обычно конфигурационные файлы), взятое из /etc/skel ;
  • модифицировать системные конфигурационные файлы, в частности, создать хранилище для приходящей почты для данного пользователя ( /var/spool/mail/tester ).

Все эти действия могут быть выполнены и вручную, однако это довольно неудобно и можно что-нибудь забыть. Для упрощения процесса используется утилита useradd (она же по традиции называется adduser ), для выполнения которой, естественно, потребуются полномочия администратора. В простейшем случае достаточно будет двух шагов:

root@tacit ~# useradd test root@tacit ~# passwd test passwd: updating all authentication tokens for user test. You can now choose the new password or passphrase. . . . Enter new password:

Пример 3. Создание пользователя

Сначала useradd добавляет учётную запись (имя пользователя — единственный параметр, в нашем примере — test ), заполняя её значениями по умолчанию и проводя все необходимые изменения в системе. С помощью дополнительных параметров при вызове useradd можно явно указать значение для того или иного поля учётной записи, также эта утилита позволяет модифицировать параметры создания пользователей по умолчанию. Подробности можно найти в руководстве useradd(8) . Утилита passwd , вызванная с правами суперпользователя, позволяет назначить данному пользователю любой пароль. При этом сведения о предшествующем пароле данного пользователя (если таковой был), будут полностью утрачены. passwd , вызванная обычным пользователем (без параметров), позволяет ему сменить свой собственный пароль, но для этого потребуется ввести текущий пароль пользователя.

Существуют аналогичные useradd утилиты для модификации параметров уже существующей учётной записи ( usermod ) и для удаления пользователей ( userdel ). Пользователь также может изменить некоторые некритичные сведения в своей учётной записи самостоятельно. В частности, для установки своего полного имени и некоторых других информационных полей учётной записи служит утилита chfn(1) из пакета shadow-change, сменить начальную оболочку поможет утилита chsh(1) (позволяет выбрать только одну из оболочек, перечисленных в /etc/shells ) из того же пакета. Обратите внимание, что в ALT Linux пользователь имеет право редактировать собственную учётную запись только в том случае, если установлен соответствующий режим доступа: команда control chsh должна возвращать public , аналогично control chfn . Установить нужный доступ может суперпользователь командой control chsh public (аналогично для chfn ).

Самую востребованную операцию по работе с группами — добавление пользователя в группу — проще всего выполнить простым редактированием файла /etc/group . Достаточно открыть этот файл в любом текстовом редакторе (естественно, с правами суперпользователя), найти строчку, начинающуюся с названия нужной группы, и добавить в конец этой строки имя нужного пользователя через запятую). Для управления группами существует комплект утилит groupadd(8) , groupdel(8) , groupmod(8) , подробности о работе с ними можно найти в соответствующих руководствах.

1Это может оказаться важным, например, в такой ситуации: учётную запись пользователя с именем test удалили из системы, а потом добавили снова. Однако с точки зрения системы это уже другой пользователь, потому что у него другой UID.

2Обычно Linux выдаёт нормальным пользователям UID, начиная с “ 500 ” или “ 1000 ”.

3Как правило, численное значение GID в этом случае совпадает со значением UID.

4Эта утилита также полезна для получения сведений о некоторых других системных ресурсах, см. getent —help .

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

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

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

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

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

less /etc/passwd

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

  • Имя пользователя.
  • Зашифрованный пароль (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, введите следующую команду:

getent passwd

Как видите, вывод такой же, как и при отображении содержимого файла /etc/passwd. Если вы используете LDAP для аутентификации пользователей, getent будет отображать всех пользователей Linux как из файла /etc/passwd, так и из базы данных LDAP.

Вы также можете использовать awk или cut для печати только первого поля, содержащего имя пользователя:

getent passwd | awk -F: '< print $1>' # ИЛИ getent passwd | cut -d: -f1

Аналогичный результат можно получить с помощью команды compgen:

compgen -u

Как проверить, существует ли пользователь в системе Linux

Теперь, когда мы знаем, как составить список всех пользователей, чтобы проверить, существует ли пользователь в нашем Linux-сервере, мы можем просто отфильтровать список пользователей, передав его по конвейеру команде grep.

Например, чтобы узнать, существует ли в нашей системе Linux пользователь с именем mial, мы можем использовать следующую команду:

getent passwd | grep mial

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

Мы также можем проверить, существует ли пользователь, не используя команду grep, как показано ниже:

getent passwd mial

Как и раньше, если пользователь существует, команда отобразит информацию для входа в систему.

Если вы хотите узнать, сколько учётных записей пользователей у вас в системе, передайте вывод getent passwd команде wc:

getent passwd | wc -l

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

getent passwd

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

getent passwd | grep '/home'

Заключение

В этом руководстве вы узнали, как составлять список и фильтровать пользователей в вашей системе Linux, а также каковы основные различия между системными и обычными пользователями Linux.

Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian, Linux Mint, Arch Linux и Manjaro.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Связанные статьи:

  • Как создать нового пользователя в Linux (77.1%)
  • Как в Linux изменить login shell (оболочку входа в систему). Инструкция по команде chsh (77.1%)
  • Как удалить пользователя в Linux (и удалить все его «хвосты») (77.1%)
  • Как в Linux добавить пользователя в группу (или вторичную группу) (73%)
  • Как вывести все задачи Cron (73%)
  • Как узнать, какие модули (драйверы) используются USB и PCI устройствами (RANDOM — 50%)

Рекомендуемые статьи:

1 Комментарий

Александр 11.12.2022 в 22:08

Добрый вечер! Как человеку всю жизнь пользующемся Windows, не очень понятны вещи: 1) В каких группах состоит пользоватлей (Windows тема) — админ, пользователь и т. д. 2) Зачем столько пользоватлей? (в Windows SYSTEM и User — все.) 3) Зачем столько команд для вывода списка пользователей: less, cut, geten, compgen Сейчас будем массово переходить на Unix. И аналогии с фортачками могут сильно помочь. Спасибо!

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

В системе Линукс может быть зарегистрировано множество пользователей. Иногда их список требуется для ознакомления. Для каких целей это необходимо? К примеру, чтобы проверить, не находится ли в системе кто-нибудь лишний. Подобная информация также нужна в том случае, если возникает необходимость изменить группу и другие данные для конкретного юзера Linux. И если опытные пользователи открывают список на раз, да еще и знают уйму альтернативных способов, то новички зачастую теряются в данном вопросе. Для неопытного владельца Линукс это может стать настоящей проблемой. Но главное, что она решаема! Остаётся лишь узнать, как это делается. В данном материале мы уделим внимание двум основным способам поиска списка пользователей в системе. Этого будет вполне достаточно для новичка.

Способ №1: через терминал

Так как дистрибутивы Линукс могут отличаться между собой, целесообразно рассматривать универсальные способы поиска нужной информации. Одним из таких способов является просмотр списка пользователей посредством терминала. В отличие от Windows в системе Linux данные о пользователях хранятся в специальном файле.

Чтобы прочитать системный файл, потребуется открыть его любым редактором или утилитой cat. $ cat /etc/passwd После этого на экране отобразится список пользователей Линукс. Ознакомьтесь с ним внимательнее. Возле каждого юзера указан его персональный ID. Если ID меньше 1000, то пользователь системный. Они должны оставаться в данном списке для более безопасной работы некоторых установленных сервисов. Удалять этих пользователей не нужно. /etc/passwdИнформация в открывшемся окне будет подана в развернутом и детальном виде, что не всегда удобно для поиска конкретных данных. Если нужно посмотреть только имена юзеров системы, следует применить один простой трюк: $ sed ‘s/:.*//’ /etc/passwd С помощью этой команды осуществляется фильтрация лишней информации. В открывшемся списке видны пользователи, зарегистрированные в системе Линукс. Список пользователей без лишний информацииТеперь немного усложним задачу: посмотрим список активных юзеров и узнаем, какие команды они выполняют в текущий момент времени. Для этих целей нужно запустить утилиту: $ w На экран выведутся выполняемые команды для каждого активного пользователя. А чтобы получить информацию относительно сеансов пользователей, потребуется применить команду данного вида: $ last -a История входов доступна для ознакомления! Чтобы посмотреть дату последнего сеанса пользователей системы, задайте в терминале: $ lastlog

Способ №2: с помощью специальных программ

Данный способ подходит для операционных систем Линукс с графической оболочкой. Например управление пользователями в Ubuntu может осуществляться через параметры системы. Произведите запуск утилиты и найдите для дальнейшей работы пункт под названием «Учетные записи». В открывшемся окне не будет системных юзеров. Тем не менее, в левом блоке можно увидеть сам перечень пользователей, а в правом блоке – внести все необходимые коррективы в настройки. Если потребуется аналогичная утилита для KDE, рекомендуем воспользоваться проверенной и надежной программой под названием «KUser». С её помощью новичок быстро научится управлять пользователями системы Linux (менять пароли и группы, вносить изменения в данных и прочее). KUser откроет список, в котором содержатся все пользователи, включая системных юзеров Линукс. Если данный способ просмотра списка не удовлетворяет ваши запросы в полной мере, отдайте предпочтение выводу подробной информации через терминал компьютера.

    • Linux узнать mac адрес сетевой карты
    • Линукс команда sudo
    • Linux посмотреть IP-адрес
    • nslookup Linux команда

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

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

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

    Самый оправданный и универсальный способ – посмотреть всех пользователей в терминале Linux. Он работает практически во всех дистрибутивах операционной системы, поэтому начать следует именно с него. В системе Linux есть /etc/passwd, так вот в нем хранится вся информация обо всех пользователях.

    Записи в файле выглядят следующим образом:

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

    Здесь нужно отметить, что с целью безопасности пароли перенесли в отдельный файл, поэтому здесь вы их не сможете увидеть. Чтобы ознакомиться со списком пользователей, необходимо выполнить команду:

    КАК ПОСМОТРЕТЬ СПИСОК ПОЛЬЗОВАТЕЛЕЙ В ТЕРМИНАЛЕ

    Мы видим, что в файле большое количество данных, и не все они нужны в определенное время. Поэтому с целью упрощения задачи стоит воспользоваться специальным фильтром. Он активируется командой:

    Теперь вы сможете посмотреть только пользователей, прошедших регистрацию в системе. Еще одна полезная возможность – посмотреть, кто из пользователей активен, и кто какими процессами занимается.

    Для этого используем:

    утилита w

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

    команда last

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

    команда lastlog

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

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

    Система Ubuntu дает возможность управлять зарегистрированными в системе пользователями посредством параметров. Для начала откройте утилиту и в самом низу найдите пункт меню «Учетные записи». В левой колонке непосредственно список с пользователями, в правой –данные и настройки.

    СПИСОК ПОЛЬЗОВАТЕЛЕЙ В GUI

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

    команда KUser

    Интерфейс напоминает терминал. Можно дело все то же самое: менять пароли, различные данные о пользователях, основную и вспомогательную группу.

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

    Можно менять различные данные

    На этом все, посмотреть список пользователей в Ubuntu очень просто. Достаточно разобраться в основах этого процесса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *