unixforum.org
Как посмотреть список пользователей и групп в системе?
Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.
Модератор: Bizdelnick
7 сообщений • Страница 1 из 1
jobfox Сообщения: 142
Как посмотреть список пользователей и групп в системе?
Сообщение jobfox » 15.01.2010 23:19
Как посмотреть список пользователей и групп в системе?
Спасибо сказали:
smaharbA Сообщения: 229 ОС: Windows Vista
Re: Как посмотреть список пользователей и групп в системе?
Сообщение smaharbA » 15.01.2010 23:21
15.01.2010 23:19
Как посмотреть список пользователей и групп в системе?
Я конечно далек от мысли. (с)
Спасибо сказали:
SLEDopit Модератор Сообщения: 4823 Статус: фанат консоли (= ОС: GNU/Debian, RHEL
Re: Как посмотреть список пользователей и групп в системе?
Сообщение SLEDopit » 15.01.2010 23:36
15.01.2010 23:21
getent — не ?
ну или просто
cat /etc/group
если хотите просто названия групп, без, так сказать, лишней информации:
cat /etc/group | sed s/:.*//
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don’t do mistakes, the more bugs are in your code.
Спасибо сказали:
jobfox Сообщения: 142
Re: Как посмотреть список пользователей и групп в системе?
Сообщение jobfox » 15.01.2010 23:44
а как узнать список пользователей в системе?
Спасибо сказали:
smiftee Сообщения: 265 ОС: Debian 5.03+ testing
Re: Как посмотреть список пользователей и групп в системе?
Сообщение smiftee » 15.01.2010 23:48
вы будете смеятся, но:
users
Спасибо сказали:
SLEDopit Модератор Сообщения: 4823 Статус: фанат консоли (= ОС: GNU/Debian, RHEL
Re: Как посмотреть список пользователей и групп в системе?
Сообщение SLEDopit » 15.01.2010 23:54
15.01.2010 23:48
вы будете смеятся, но:
users
users дает список пользователей, залогиненных в систему на данный момент.
полный список
$ cat /etc/passwd | sed s/:.*// $ getent passwd
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don’t do mistakes, the more bugs are in your code.
Как вывести список пользователей в 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 и будет рассмотрено в данной статье.
Просмотр пользователей
Учётные записи в системах Linux – это универсальные компоненты. Которые представляют собой как реальных пользователей, так и виртуальных. Последние предназначены для функционирования системных сервисов Linux, являющихся неотъемлемыми составляющими системы. Или же это могут быть служебные, дополнительно добавленные в систему сервисы, предназначенные для расширения её функционала.
Независимо от того, каким пользователям (реальным или виртуальным) принадлежат учётные записи, вся основная информация о них хранится в файле /etc/passwd. Каждая учётная запись в этом файле представлена одной строкой, разделённой на поля символами двоеточия. Например, просмотреть этот файл можно командой less:
$ less /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync . . . games:x:5:60:games:/usr/games:/bin/sh
Имя пользователя (учётной записи) содержится в первом поле. Поэтому, чтобы упростить восприятие вывода, когда нужно получить например, только список имён пользователей, можно использовать соответствующие инструменты, например команду cut (или аналогичные sed или awk):
$ cut -d : -f 1 /etc/passwd root daemon bin sys sync . . . games
Конечно, для того, чтобы различать принадлежность некоторых учётных записей к реальным или виртуальным пользователям, необходим некоторый опыт администрирования Linux или UNIX. Например, в приведённом выводе пользователь root – это суперпользователь. А пользователи daemon, bin, sys и sync – учётные записи, от имени которых работают системные сервисы.
Вообще, изначально по устоявшимся соглашениям, по-умолчанию в системах Linux принято придерживаться определённых правил для наименования учётных записей, обслуживающих системные или служебные процессы и/или сервисы. Так, например, для работы веб-сервера Apache обычно используется учётная запись www-data. Это очень важно для обеспечения и контроля безопасности системы. Таким образом легко разделять привилегии по функциональному признаку для пользователей. Такие же соглашения действуют и для наименования системных или служебных процессов. Тот же Apache обычно представляется процессами httpd или apache.
Просмотр пользовательских групп
Аналогично учётным записям, информация о всех группах пользователей хранится в одном файле /etc/group :
$ less /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6:
Первое, на что нужно обратить внимание, это то, что имена многих групп идентичны именам некоторых имеющихся в системе пользователей. И это не просто совпадение. Дело в том, что таким образом реализуется механизм частных пользовательских групп (UPG) в системе. Он заключается в том, что для пользователя создаётся одноимённая закрытая группа. Которая назначается этому пользователю как основная. Этот механизм позволяет использовать в системе общие каталоги (и вообще ресурсы) без вреда для безопасности. Для этого существует такой полезный инструмент в системе прав доступа как бит setgid. Смысл этого бита в том, что в каталоге, для которого он установлен, можно создавать файлы, принадлежащие тому же владельцу, что и сам каталог с битом setgid.
Просмотр активных пользователей
Информацию о том, какие пользователи активны в данный момент времени в системе позволяют команды «w» и «who». Первая по-умолчанию выводит более подробные данные о пользователях, например:
$ w 11:45:24 up 6:34, 2 users, load average: 0.33, 0.10, 0.07 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 rrcs-72-43-115-1 19:15 38.00s 0.33s 0.33s -bash demoer pts/1 rrcs-72-43-115-1 19:37 0.00s 0.47s 0.00s w
В первой строке указаны время старта системы, продолжительность её работы, количество активных пользователей, а также данные о средней загруженности системы за прошедшие 1, 5 и 15 минут. Далее следует список активных пользователей и используемых ими командах/процессах. Более подробно о работе команды «w» можно узнать на страницах интерактивного руководства, используя команду man w.
Заключение
В заключение стоит еще раз отметить, насколько легко при помощи простых команд можно получить подробное представление о пользовательской среде системы. При этом составить картину о действиях самих пользователей в данный момент времени. А также определить принадлежность групп и учётных записей. Важно понимать, что без умения находить информацию о пользователях нереально полноценно и гибко ими управлять. Что является важнейшей частью системного администрирования.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
- Firewalld, установка и настройка, зоны, NAT, проброс портов
- Пользователи и группы в linux. Добавление удаление редактирование пользователей
- Команда cat в Linux
- Система контроля версий GIT
Как посмотреть пользователей в Ubuntu
По разным причинам может возникнуть необходимость просмотра зарегистрированных пользователей в системе. Также иногда требуется изменить группу для конкретного пользователя. Опытные пользователи, безусловно, смогут решить эту задачу в два клика мыши, но и новичков часто с этим появляются трудности. В этой статье рассмотрим, как посмотреть всех пользователей, прошедших регистрацию, при помочи графических утилит и терминала.

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

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

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

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

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

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

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

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