3 способа узнать список пользователей в Linux
Сегодня разные операционные системы имеют возможность использовать несколько пользователей, каждый со своими настройками и пользовательскими конфигурациями, чтобы облегчить совместную работу администраторов и операторов в одной системе.
Linux,очень силен в этом вопросе, поскольку позволяет нескольким пользователям одновременно работать в системе независимо. Он может даже позволить одному пользователю открывать несколько сеансов даже из разных мест для работы в системе.
Вот некоторые советы и рекомендации для как узнать всех пользователей Linux.
Список всех пользователей в Linux
Допустим, вы хотите создать пользователя sudo в Linux. Наверное, самое первое, что нужно знать, это как узнать, какие пользователи уже есть в моей системе. Есть несколько способов получить список пользователей в Linux.
1. Показать пользователей в Linux, используя 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 johndoe:x:1000:1000:John Doe. /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)
Структура в приведенном выше выводе выглядит так:
- Имя пользователя
- Зашифрованный пароль ( x означает, что пароль хранится)
- Идентификационный номер пользователя (UID)
- Идентификационный номер группы пользователя (GID)
- ФИО
- Домашний каталог пользователя
- Оболочка входа пользователя (по умолчанию — оболочка bash)
Почему так много пользователей? Какие из них «настоящие»?
Список показывает намного больше пользователей, чем вы ожидали, потому что в нем также перечислены все пользователи системы.
Теперь, если вы хотите отличить обычных пользователей от системных пользователей, вы можете обратиться к номеру идентификатора пользователя (UID).
Обычно обычный пользователь имеет UID, больший или равный 1000. Это дает вам подсказку, что пользователь с UID> = 1000 является обычным пользователем, а пользователи с UID
Вы также заметите, что у некоторых пользователей есть «nologin» в конце их строки. Это означает, что эти пользователи не могут войти в систему. Эти пользователи также называются псевдопользователями.
2. Просмотр пользователей с помощью getent passwd
Эта команда выдаст вам вывод, аналогичный «less /etc/passwd», однако на самом деле он запрашивает файл конфигурации функциональных возможностей переключателя службы имен GNU (находится в /etc/nsswitch.conf).
Это conf включает passwd, поэтому он будет отображаться очень похоже, но если вы используете LDAP для аутентификации, он также будет включать это.
3. Список пользователей Linux с compgen
Если вы просто хотите , чтобы перечислить все имена пользователей без какой — либо дополнительной информации, вы можете использовать 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-network systemd-resolve syslog messagebus _apt uuidd avahi-autoipd usbmux dnsmasq rtkit cups-pk-helper speech-dispatcher whoopsie kernoops saned pulse avahi colord hplip geoclue gnome-initial-setup gdm abhishek
Несколько советов о перечислении пользователей в Linux
Вы только что увидели три способа просмотра пользователей в 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 johndoe
johndoe:x:1000:1000:John Doe. /home/johndoe:/bin/bash
Список всех подключенных пользователей
Если вы хотите знать какие пользователи в настоящее время вошли в вашу систему Linux, вам нужно использовать простую команду who и это немедленно выведет список текущих имен пользователей с активным сеансом в вашей системе.
user@system:~$ who johndoe :0 2019-01-28 21:35 (:0) harrysmith pts/0 2019-02-01 09:51 (192.168.1.1) stevejones pts/1 2019-02-02 09:51 (192.168.1.173)
В этом случае в списке появится не только список подключенных имен пользователей, но и то, как они подключены, с момента, когда они подключены и откуда они подключены.
В самом первом столбце будет указано, какое это имя пользователя.
Во втором столбце будет указано, к какому типу соединения это относится: если оно обозначено знаком «: X», где X — число, это означает, что используется графический интерфейс пользователя (GUI) или сеанс рабочего стола, например Gnome, XDE и т. д. ; если терминал отображает «pts/X», где X — число, это означает, что это соединение, установленное по протоколу SSH (командная строка).
В третьем столбце будет указано, с каких пор этот сеанс был подключен к серверу (дата и время). В четвертом и последнем столбце будет указано место, откуда он подключен. Если удаленно, будет отображаться IP-адрес, с которого установлено соединение, если локально (например, GUI), будет отображаться «(: X)», где X — это число сеанс в этом случае и будет соответствовать число во втором столбце для этой строки.
Итог
Как видите, перечисление пользователей в Linux совсем не сложно. Он состоит из простых команд, которые выводят всю информацию для вас, что бы вы ни хотели сделать или получить эту информацию, это то, что вам нужно отфильтровать в зависимости от того, что вы хотите проверить в системе.
Свежие записи
- Начало работы с Liquibase
- Укрощение высокой загрузки ЦП cAdvisor
- Понимание действий GitHub
- Добавление собственных бегунов (GitHub Runers)
- VPN, Proxy и Tor: сохранение анонимности в сети в 2022 году
Записи Архивов по месяцам
Рубрики
- Active Directory (1)
- Airflow (2)
- Ansible (1)
- Apache NiFi (3)
- Apache Tomcat (1)
- Apache Zeppelin (3)
- Artifactory (1)
- Astra Linux (4)
- cadvisor (1)
- CentOS8 (33)
- CI/CD (8)
- CMS (3)
- Confluence (1)
- Debian (6)
- DNF (1)
- DNS (1)
- Docker (4)
- ETL (2)
- Fedora (1)
- ftp (5)
- GitHub (4)
- GitLab (1)
- Grafana (8)
- InfluxDB (2)
- InfluxDB 2.0 (1)
- Linux (163)
- liquibase (1)
- MySql (7)
- NextCloud (4)
- Nginx (5)
- Oracle Database (1)
- OwnCloud (3)
- Postgresql (7)
- Prometheus (3)
- Proxy (1)
- RedHat (39)
- SQLite (1)
- SSH (4)
- SVN (1)
- Tor (1)
- Ubuntu (24)
- Ubuntu Studio (1)
- VPN (2)
- Web Panel (2)
- Web Сервер (13)
- Windows (24)
- Zabbix (16)
- Автоматизация обмена данными (3)
- Анализ и Визуализация Данных (3)
- Анализ Кода (1)
- Анонимные ОС (4)
- Антивирусы (1)
- Без рубрики (4)
- Виртуальные Машины (8)
- Клиенты Удаленного Подключения (1)
- Команды (7)
- Менеджер Пакетов (2)
- Облако (6)
- Окружение рабочего стола (1)
- Операционные Системы (184)
- Почтовые Клиенты (4)
- Программное Обеспечение (94)
- Сетевое Хранилище (21)
- Система Wiki (1)
- Система управления версиями (9)
- Системы Автоматизации Развертывания (7)
- Системы Мониторинга (27)
- Системы Управления Базами Данных (22)
- Системы управления проектами (6)
- Системы Управления Проектом (9)
- Служба каталогов (2)
- Средства Разработки (3)
- Удаленное Подключение (11)
Как просмотреть список пользователей и групп в 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
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 Модератор Сообщения: 4817 Статус: фанат консоли (= ОС: 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 Модератор Сообщения: 4817 Статус: фанат консоли (= ОС: 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.
Как посмотреть список пользователей centos
Для этого можно использовать несколько команд. Команды w и who покажут активных пользователей в системе в данный момент:
$ who
user :0 2019-12-18 13:11 (:0)
jack :1 2019-12-17 19:18 (:1)
Если хотите узнать список всех пользователей в системе, то достаточно просмотреть файл /etc/passwd
$ 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/nologi
user:x:0:0:user:/home/user:/bin/bash
jack:x:0:0:jack:/home/jack:/bin/bash
Видим наших пользователей: root, daemon, bin, sys, sync, games, user, jack.
Узнать, под каким мы сейчас пользователем в консоли можно командой whoami: