Из этой статьи вы узнаете, как составить список пользователей в Linux. Вы также научитесь перечислять только зарегистрированных пользователей.
Сегодня в разных операционных системах есть возможность использовать нескольких пользователей, каждая со своими настройками и пользовательскими настройками, чтобы облегчить совместную работу администраторов и операторов в одной системе.
Linux, с другой стороны, очень силен в этом вопросе, поскольку позволяет нескольким пользователям одновременно работать в системе независимо. Это может даже позволить одному пользователю открыть несколько сеансов даже из разных мест для работы в системе.
Вот некоторые советы и рекомендации для пользователей Linux.
Наверное, самое первое, что нужно знать, это как узнать, какие пользователи в моей системе. Есть несколько способов получить список пользователей в Linux.
Эта команда позволяет сисопам перечислять пользователей, которые локально хранятся в системе. Это даст список в структурированном виде, как:
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 maxdie:x:1000:1000:Max Die,,,:/home/helder:/bin/bash davmail:x:127:65534::/var/lib/davmail:/usr/sbin/nologin statd:x:128:65534::/var/lib/nfs:/usr/sbin/nologin /etc/passwd (END)
Структура в приведенном выше выводе выглядит так:
Почему так много пользователей? Какие являются «Реальными»?
Список показывает намного больше пользователей, чем вы ожидали, потому что в нем также перечислены все пользователи системы.
Теперь, если вы хотите отличить обычных пользователей от системных пользователей, вы можете обратиться к номеру идентификатора пользователя (UID).
В общем-то обычный пользователь имеет UID, больший или равный 1000. Это дает вам подсказку, что пользователь с UID> = 1000 является обычным пользователем, а пользователи с UID <1000 являются системными пользователями.
Эта команда выдаст вам вывод, похожий на пароль less /etc/
. Однако этот запрос фактически запрашивает файл конфигурации функциональности коммутатора службы имен GNU (находится в /etc/nsswitch.conf
).
Эта конфигуряция включает сложный пароль, поэтому он будет отображаться очень похоже, но если вы используете LDAP для аутентификации, он также будет включать его.
Если вы просто хотите перечислить все имена пользователей без какой-либо дополнительной информации, вы можете использовать команду compgen с опцией -u.
compgen -u
Вывод будет выглядеть так:
compgen -u root daemon bin sys sync games man lp mail news uucp proxy www-data backup list irc gnats nobody systemd-timesync systemd-network systemd-resolve systemd-bus-proxy syslog _apt messagebus sshd ntp mysql bind shellinabox Debian-exim proftpd ftp nginx destroyer debian-spamd clamav terminator
Вы только что увидели три способа просмотра пользователей в Linux. Вот несколько советов, которые помогут вам при работе с списком пользователей.
У вас уже есть команда compgen для этого, но вы не должны помнить это все время.
Если мы хотим получить только список имен пользователей в системе, вы можете использовать команду awk
или команду cut
для фильтрации вывода двух других команд, которые мы видели ранее.
cut -d: -f1 /etc/passwd
или же
getent passwd | awk -F: '{ print $1}'
Любой из них даст нам отфильтрованный список пользователей, показывая только самый первый столбец с именем пользователя:
root daemon bin sys sync games man lp mail news johndoe davmail statd
Это может быть полезно, если вы хотите знать, существует ли конкретное имя пользователя в системе:
getent passwd | grep maxdie
Maxdie:x:1000:1000:Max Die,,,:/home/maxdie:/bin/bash
Если вы хотите знать, какие пользователи в настоящее время вошли в вашу систему, вам нужно выполнить простое «who» в командной строке, и это сразу выведет список текущих имен пользователей с активным сеансом в вашей системе.
user@system:~$ who maxdie :0 2019-02-02 03:12 (:0) alexterminator pts/0 2019-02-05 22:43 (192.168.1.23) annadestroyer pts/1 2019-02-07 11:10 (192.168.1.145)
В этом случае в списке будет указан не только список подключенных имен пользователей, но и то, как они связаны, с момента, когда они подключены и откуда они подключены.
В самом первом столбце будет указано, какое это имя пользователя.
Во втором столбце будет указан тип подключения: если он обозначен знаком «: X», где X – число, это означает, что он использует графический интерфейс пользователя (GUI) или сеанс рабочего стола, например Gnome, XDE и т. д. ; если он говорит «pts/X», где X – число, это означает, что это соединение, установленное по протоколу SSH (командная строка).
Третий столбец сообщит вам, когда этот сеанс был подключен к серверу (дата и время). В четвертом и последнем столбце будет указано место, откуда оно подключено. Если удаленно, будет отображаться IP-адрес, с которого установлено соединение, если локально (например, GUI), будет отображаться «(: X)», где X – это число сеанс в этом случае и будет соответствовать число во втором столбце для этой строки.
Как видите, перечисление пользователей в Linux совсем не сложно. Он состоит из простых команд, которые выводят всю информацию для вас, что бы вы ни хотели сделать или получить эту информацию, это то, что вам нужно отфильтровать в зависимости от того, что вы хотите проверить в системе.
Надеюсь, вам понравилась эта статья. Если у вас есть какие-либо вопросы или предложения, пожалуйста, сообщите нам об этом в комментариях
Не понятно какие пользователи созданные админом имеются, выводит целый список нужной и ненужной информации. Хотел вывести учетки и поменять у них пароль. А тут bin, sys и т.д. и вряд ли они создавались как учетная запись пользователем.