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

by itisgood

Поскольку 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. GECOS,
  6. домашний каталог,
  7. оболочка
Поле «gekos» содержит общую информацию о пользователе.
Например, оно может содержать настоящее имя пользователя.
Это поле может быть либо пустым, разделенным двумя двоеточиями, либо содержать несколько записей, разделенных запятыми.

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

Есть несколько способов составить список всех пользователей в системе 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

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

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

Команда cut

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

Чтобы вывести список всех пользователей с командой 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

Команда awk

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

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

Compgen

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

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

$ compgen -u

Команда getent

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

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

Команды «more» или «less»

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

$ more /etc/passwd

или

$ less /etc/passwd

 

You may also like

1 comment

Руслана 21.05.2020 - 22:09

В процессе обновления до buster может потребоваться удалить пакеты в системе. Точный список пакетов будет зависеть от набора установленных в системе пакетов. В данном документе даны общие советы об удалении, но если у вас имеются сомнения, то перед тем как продолжить, рекомендуется проверить все пакеты, которые предлагаются к удалению. Дополнительную информацию об устаревших пакетах в buster см. в Раздел 4.8, «Устаревшие пакеты» .

Reply

Leave a Comment