Поиск по сайту:

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

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

Краткое примечание о файле /etc/passwd

В Linux (и Unix в целом) основная информация о каждой учетной записи пользователя хранится в файле "/etc/passwd". Это не что иное, как обычный текстовый файл, содержащий атрибуты всех учетных записей пользователей, присутствующих в системе Linux.

По умолчанию этот файл доступен для чтения всем пользователям с помощью любых текстовых или графических программ, таких как Vi, Nano, Gedit и т. д., или с помощью команд типа "cat".

Если вы откроете этот файл..

cat /etc/passwd

... вы увидите несколько записей, как показано ниже:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
[...]

Каждая строка в файле /etc/passwd представляет одного пользователя. Пользователь root будет указан вверху. Каждая строка содержит семь атрибутов или полей, разделенных двоеточием, без пробелов между каждым полем. Ниже приведены названия семи полей:

  1. имя,
  2. пароль,
  3. ID пользователя,
  4. идентификатор группы,
  5. гекос,
  6. домашний каталог,
  7. оболочка.

1. Имя

Поле "имя" — это имя пользователя, которое вы используете для входа в свой компьютер Linux.

2. Пароль

Поле "пароль" содержит просто букву X. Это означает, что пароль зашифрован и хранится в отдельном файле под названием "/etc/shadow" в целях безопасности. Обычные пользователи не могут прочитать файл /etc/shadow. Здесь X указывает, что у пользователя есть пароль. Если это поле пусто, у пользователя нет пароля, поэтому он может войти в систему без пароля.

3. Идентификатор пользователя

Идентификатор пользователя» (или сокращенно UID) указывает уникальный цифровой идентификационный номер пользователя. UID корневой учетной записи равен 0 (ноль). Числа от 1 до 99 зарезервированы для системных учетных записей. А номера от 100 до 999 зарезервированы для обычных пользователей и групп.

4. Идентификатор группы

Идентификатор группы (или сокращенно GID) указывает идентификатор основной группы, к которой принадлежит пользователь. GID обычно совпадает с UID.

5. Гекконы

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

6. Домашний каталог

Поле "домашний каталог" указывает полный путь к домашнему каталогу пользователя, например /home/sk. Это каталог, в который пользователь попадает первым при входе в систему. Домашний каталог обычно содержит программы и файлы конфигурации, принадлежащие пользователю.

7. Оболочка

Последнее поле — "оболочка". Он указывает полный путь к оболочке по умолчанию для этого пользователя.

Теперь давайте возьмем в качестве примера следующую строку:

root:x:0:0:root:/root:/bin/bash

В приведенной выше строке

  • root — имя пользователя,
  • x — указывает, что у пользователя root есть пароль,
  • 0 – первый 0 (ноль) указывает UID,
  • 0 – второй ноль указывает GID,
  • root — указывает настоящее имя пользователя.
  • /root — это домашний каталог пользователя root.
  • /bin/bash — оболочка по умолчанию для пользователя root.

Надеюсь, вы получили общее представление о файле /etc/passwd. Теперь давайте вернемся к нашей теме, то есть к перечислению всех пользователей в системе Linux.

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

Есть несколько способов составить список всех пользователей в системе Linux. Здесь я включил все возможные способы.

1. Перечислите всех пользователей Linux с помощью команды cat.

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

Чтобы просмотреть всех пользователей в системе Linux с помощью команды Cut, выполните:

cat /etc/passwd

Эта команда выведет список всех доступных пользователей.

Пример вывода:

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
uuidd:x:105:111::/run/uuidd:/usr/sbin/nologin
avahi-autoipd:x:106:112:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/usr/sbin/nologin
usbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
dnsmasq:x:108:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
rtkit:x:109:114:RealtimeKit,,,:/proc:/usr/sbin/nologin
cups-pk-helper:x:110:116:user for cups-pk-helper service,,,:/home/cups-pk-helper:/usr/sbin/nologin
speech-dispatcher:x:111:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/false
whoopsie:x:112:117::/nonexistent:/bin/false
kernoops:x:113:65534:Kernel Oops Tracking Daemon,,,:/:/usr/sbin/nologin
saned:x:114:119::/var/lib/saned:/usr/sbin/nologin
avahi:x:116:122:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/usr/sbin/nologin
colord:x:117:123:colord colour management daemon,,,:/var/lib/colord:/usr/sbin/nologin
hplip:x:118:7:HPLIP system user,,,:/var/run/hplip:/bin/false
geoclue:x:119:124::/var/lib/geoclue:/usr/sbin/nologin
gnome-initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/false
gdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/false
sk:x:1000:1000:sk,,,:/home/sk:/bin/bash
Debian-exim:x:122:128::/var/spool/exim4:/usr/sbin/nologin
pulse:x:115:120:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologin
systemd-timesync:x:123:127:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
tss:x:124:131:TPM software stack,,,:/var/lib/tpm:/bin/false
tcpdump:x:125:132::/nonexistent:/usr/sbin/nologin
_flatpak:x:126:133:Flatpak system-wide installation helper,,,:/nonexistent:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin

Список всех пользователей Linux с помощью команды cat

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

3. Список пользователей с помощью команды вырезания

Команда «вырезать» используется для удаления разделов (или полей) из каждой строки файлов.

Чтобы просмотреть всех пользователей с помощью команды Cut в системе Linux, выполните:

cut -d: -f1 /etc/passwd

Эта команда отображает только имена пользователей из файла /etc/passwd и игнорирует все остальные поля.

Пример вывода:

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
backup
list
irc
gnats
nobody
systemd-network
systemd-resolve
syslog
messagebus
_apt
uuidd
avahi-autoipd
usbmux
dnsmasq
rtkit
cups-pk-helper
speech-dispatcher
whoopsie
kernoops
saned
avahi
colord
hplip
geoclue
gnome-initial-setup
gdm
sk
Debian-exim
pulse
systemd-timesync
tss
tcpdump
_flatpak
systemd-coredump

Список всех пользователей Linux с помощью команды Cut

4. Распечатайте пользователей в Linux с помощью команды awk.

Мы также можем использовать команду «awk» для вывода списка всех пользователей Linux.

awk -F':' '{ print $1}' /etc/passwd

Эта команда также отобразит только пользователей и опустит все остальные детали.

Список всех пользователей Linux с помощью команды awk

5. Просмотр списка пользователей с помощью compgen

Compgen – это встроенная функция BASH для управления программируемыми средствами завершения.

Чтобы вывести список всех пользователей, использующих compgen, запустите:

compgen -u

6. Отобразите всех пользователей с помощью команды getent.

Другой способ составить список пользователей в Linux — использовать команду getent, как показано ниже:

getent passwd

Эта команда прочитает файл /etc/passwd и выведет список всех пользователей в этом файле.

Список всех пользователей Linux с помощью команды awk

Одним из заметных преимуществ команды getent является то, что она выводит список не только пользователей в файле /etc/passwd, но и всех пользователей во всех настроенных бэкэндах userdb, например LDAP, в данной системе.

7. Перечислите пользователей, используя команды «больше» или «меньше».

Команды more и less используются для открытия данного файла для интерактивного чтения, позволяющего прокручивать и искать.

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

more /etc/passwd

Или,

less /etc/passwd

Связанное чтение:

  • Как составить список членов группы в Linux
  • Как найти вошедших в систему пользователей в Linux
  • Как отслеживать активность пользователей в Linux
  • Как ограничить доступ пользователя к системе Linux
  • Разница между «больше», «меньше» и большинством команд
  • Как добавлять, удалять и предоставлять привилегии Sudo пользователям в Ubuntu
  • Как узнать, к каким группам принадлежит пользователь в Linux
  • Правильный способ редактирования файлов /etc/passwd и /etc/group в Linux

Надеюсь это поможет.

Статьи по данной тематике