Последнее обновление:
Важно знать, кто имеет доступ к вашему ПК с Linux (и контроль над вашими файлами), но вы можете легко получить список пользователей в Linux, чтобы выяснить это. Вот как.
То Операционная система Линукс предлагает команды для создания и удаления пользователей и проверки того, какие из них вошли в систему. Однако в системе нет команды для вывода списка пользователей, вошедших в систему или нет.
Тем не менее, есть несколько способов справиться с этим. Если вы хотите узнать, как составить список пользователей в Linux, выполните следующие действия.
Почему вы должны проверить свой список пользователей Linux
Есть ряд причин, по которым вы можете захотеть составить список пользователей в Linux. Например, это хорошая практика с точки зрения поиска и удаления неиспользуемых учетных записей. С точки зрения безопасности это также хороший способ убедиться, что у вас нет злоумышленников, создающих учетные записи пользователей.
Это административная задача, которую вам, вероятно, следует выполнять не реже одного раза в месяц. Если вы используете корпоративный сервер Linux, вы можете делать это чаще.
Пользователи, перечисленные в /etc/passwd
Все учетные записи пользователей вашего сервера Linux имеют записи в файле /etc/passwd. Каждая строка представляет пользователя и состоит из семи полей, разделенных двоеточиями. Поля предоставляют информацию о пользователе.
- Имя пользователя.
- Зашифрованный пароль (Икс указывает, что пароль на самом деле находится в /etc/shadow)
- Идентификационный номер пользователя (UID).
- Идентификационный номер группы пользователя (GID).
- Полное имя пользователя, если оно указано.
- Домашний каталог пользователя.
- Оболочка входа
Итак, это подводит нас к одному способу перечислить всех пользователей в Linux. Вы можете использовать меньше Команда для просмотра всего файла, по одному экрану за раз.
меньше /etc/passwd.
Если вы хотите проверить, существует ли конкретный пользователь в системе Linux, это хорошее применение для команды grep:
меньше пароля | грэп джефф.
Если вы не получите никакого вывода, этот пользователь не существует на сервере Linux.
Тем не менее, это много информации. Вы можете сократить его до имени пользователя, например, используя либо аук или резать команды:
awk -F: '{print $1}' /etc/passwd. вырезать -d: -f1 /etc/passwd.
Это, как правило, намного проще понять, но при этом вы все равно видите все системные учетные записи пользователей, смешанные с вашими пользователями-людьми.
Как использовать getent для списка пользователей
Другая команда, получить, гораздо полезнее. Он отображает записи из любая настроенная база данных на вашем сервере /etc/nsswitch.conf файл. Одним из них является пароль база данных. Использовать получить чтобы отобразить список всех пользователей Linux, это работает так:
получить пароль
Вывод выглядит точно так же, как при использовании меньше команда, но перечисляет всех пользователей LDAP в системе Linux. Еще раз, наш аук и резать команды могут помочь увидеть только первое поле, имена пользователей.
Если вы хотите проверить, существует ли конкретный пользователь в системе Linux, получить делает это легко:
getent passwd jeff.
Опять же, никакой вывод этой команды не говорит вам, что пользователь не существует.
Еще одно потрясающее применение получить выясняет, сколько учетных записей пользователей существует на сервере. Это делается с помощью трубопровода получитьвывод через Туалет команда, например:
получить пароль | туалет -л.
Как видите, в моей системе Linux всего 48 учетных записей. Довольно интересно, так как я единственный, кто его использует, но это просто показывает, сколько системных учетных записей создается в Linux.
Отсеивание системных пользователей от обычных пользователей
В глазах Linux нет разницы между системным пользователем и человеком. Каждый раз, когда вы устанавливаете ОС, она создает ряд системных пользователей. Другие системные пользователи создаются для различных пакетов, таких как программное обеспечение для веб-служб или почтовых служб.
Итак, как вы можете перечислить только обычных пользователей системы Linux? Ключевым моментом здесь является понимание того, что при создании обычного пользователя его UID назначается в пределах определенного диапазона чисел. Проверяя /etc/login.defs файл, мы можем определить диапазон значений UID, доступных для обычных учетных записей пользователей.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs.
Основываясь на выводе, я знаю, что обычные пользователи должны иметь UID от 1000 до 60000. Из этого я могу построить получить запрос, который будет отображать только обычных пользователей.
получить пароль {1000..60000}
Имей в виду, получить будет казаться зависшим даже после того, как он отобразит свой вывод. Вы можете нажать Ctrl-C для завершения процесса или дождитесь его завершения. Обычно для завершения поиска требуется менее 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 делать несколько вещей одновременно. То аук команды получают UID_MIN и UID_MAX значения, а затем использовать их в получить команда.
Теперь предположим, что все, что нам нужно, это имена пользователей. Еще раз, мы передаем наш вывод через резать команда, например:
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 поможет вам обнаружить любые учетные записи, которые могли застрять.
При этом обязательно следите за политики безопасности паролей и поощряйте своих пользователей к изменить свои пароли регулярно.