Как составить список пользователей в Linux
Важно знать, кто имеет доступ к вашему ПК с Linux (и контроль над вашими файлами), но вы можете легко получить список пользователей в Linux, чтобы выяснить это. Вот как.
Операционная система Linux предлагает команды для создания и удаления пользователей и проверки того, кто из них вошел в систему. Однако в системе нет команды для вывода списка пользователей, вошедших в систему или нет.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Тем не менее, есть несколько способов справиться с этим. Если вы хотите узнать, как составить список пользователей в Linux, выполните следующие действия.
Почему вы должны проверить свой список пользователей Linux
Есть ряд причин, по которым вы можете захотеть составить список пользователей в Linux. Например, это хорошая практика с точки зрения поиска и удаления неиспользуемых учетных записей. С точки зрения безопасности это также хороший способ убедиться, что у вас нет злоумышленников, создающих учетные записи пользователей.
Это административная задача, которую вам, вероятно, следует выполнять не реже одного раза в месяц. Если вы используете корпоративный сервер Linux, возможно, вы захотите делать это чаще.
Пользователи, перечисленные в /etc/passwd
Все учетные записи пользователей вашего сервера Linux имеют записи в файле /etc/passwd. Каждая строка представляет пользователя и состоит из семи полей, разделенных двоеточиями. Поля предоставляют информацию о пользователе.
- Имя пользователя.
- Зашифрованный пароль (x указывает, что пароль на самом деле находится в /etc/shadow)
- Идентификационный номер пользователя (UID).
- Идентификационный номер группы пользователя (GID).
- Полное имя пользователя, если оно указано.
- Домашний каталог пользователя.
- Оболочка входа
Итак, это подводит нас к одному способу перечислить всех пользователей в Linux. Вы можете использовать команду less для просмотра всего файла по одному экрану за раз.
меньше /etc/passwd
Если вы хотите проверить, существует ли конкретный пользователь в системе Linux, хорошо использовать команду grep:
меньше пароля | грэп джефф
Если вы не получите никакого вывода, этот пользователь не существует на сервере Linux.
Тем не менее, это много информации. Вы можете сократить его до имени пользователя, например, с помощью команд awk или cut:
awk -F: ‘{print $1}’ /etc/passwd cut -d: -f1 /etc/passwd
Это, как правило, намного проще понять, но при этом вы все равно видите все системные учетные записи пользователей, смешанные с вашими пользователями-людьми.
Как использовать getent для списка пользователей
Другая команда, getent, гораздо полезнее. Он отображает записи из любая настроенная база данных в файле /etc/nsswitch.conf вашего сервера. Одним из них является база данных passwd. Чтобы использовать getent для отображения списка всех пользователей Linux, это работает следующим образом:
получить пароль
Вывод выглядит точно так же, как при использовании меньше команда, но перечисляет всех пользователей LDAP в системе Linux. Еще раз, наши команды awk и cut могут помочь увидеть только первое поле, имена пользователей.
Если вы хотите проверить, существует ли конкретный пользователь в системе Linux, getent упрощает эту задачу:
Джефф
Опять же, никакой вывод этой команды не говорит вам, что пользователь не существует.
Еще одно потрясающее применение getent — узнать, сколько учетных записей пользователей существует на сервере. Это делается путем передачи вывода getent через команду wc, например:
получить пароль | туалет -л
Как видите, в моей системе Linux всего 48 учетных записей. Довольно интересно, так как я единственный, кто его использует, но это просто показывает, сколько системных учетных записей создается в Linux.
Отсеивание системных пользователей от обычных пользователей
В глазах Linux нет разницы между системным пользователем и человеком. Каждый раз, когда вы устанавливаете ОС, она создает ряд системных пользователей. Другие системные пользователи создаются для различных пакетов, таких как программное обеспечение для веб-служб или почтовых служб.
Итак, как вы можете перечислить только обычных пользователей системы Linux? Ключевым моментом здесь является понимание того, что при создании обычного пользователя его UID назначается в пределах определенного диапазона чисел. Проверив файл /etc/login.defs, мы можем определить диапазон значений UID, доступных для учетных записей обычных пользователей.
grep -E ‘^UID_MIN|^UID_MAX’ /etc/login.defs
Основываясь на выводе, я знаю, что обычные пользователи должны иметь UID от 1000 до 60000. Исходя из этого, я могу создать запрос getent, который будет отображать только обычных пользователей.
получить пароль {1000..60000}
Имейте в виду, что getent будет зависать даже после того, как отобразит свой вывод. Вы можете нажать Ctrl-C, чтобы завершить процесс, или дождаться его завершения. Обычно поиск в базе данных passwd занимает менее 15 секунд.
Более общая версия этой команды учитывает разные значения UID_MIN и UID_MAX, которые могут использовать разные серверы.
eval getent passwd {$(awk ‘/^UID_MIN/ {print $2}’ /etc/login.defs)..$(awk ‘/^UID_MAX/ {print $2}’ /etc/login.defs)}
В этой команде мы используем возможности Linux делать несколько вещей одновременно. Команды awk получают значения UID_MIN и UID_MAX, а затем используют их в команде getent.
Теперь предположим, что все, что нам нужно, это имена пользователей. Мы снова передаем наш вывод через команду cut, например:
eval getent passwd {$(awk ‘/^UID_MIN/ {print $2}’ /etc/login.defs)..$(awk ‘/^UID_MAX/ {print $2}’ /etc/login.defs)} | вырезать -d: -f1
Выполнение этой команды может занять от 10 до 15 секунд, так что наберитесь терпения.
Эффективное управление пользователями Linux
Важно отслеживать, какие учетные записи пользователей существуют в вашей системе Linux. Когда вы знаете, что сотрудник ушел, немедленно удалите его учетную запись. Периодическое составление списка ваших пользователей Linux поможет вам обнаружить любые учетные записи, которые могли застрять.
В то же время обязательно следите за политиками безопасности паролей и поощряйте своих пользователей регулярно менять свои пароли.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)