В этом руководстве вы узнаете, как составить и получить список пользователей в системах 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
root
daemon
bin
sys
sync
...
...
sshd
vagrant
jack
anne
Получить список пользователей командой 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
Проверить, существует ли пользователь в системе Linux
Теперь, когда мы знаем, как получить список всех пользователей, чтобы проверить, существует ли пользователь в нашей Linux-машине, мы можем просто отфильтровать список пользователей, передав список grep
команде.
Например, чтобы узнать, существует ли пользователь с именем jack
в нашей системе Linux, мы можем использовать следующую команду:
getent passwd | grep jack
Если пользователь существует, приведенная выше команда напечатает информацию для входа пользователя. Нет вывода, что означает, что пользователь не существует.
Мы также можем проверить, существует ли пользователь, не используя grep
команду, как показано ниже:
getent passwd jack
Как и раньше, если пользователь существует, команда отобразит информацию для входа пользователя.
Если вы хотите узнать, сколько учетных записей пользователей у вас есть в вашей системе, передайте getent passwd
вывод в wc
команду:
getent passwd | wc -l
0 комментариев