ГлавнаяОперационные системыLinuxКак Linux хранит и управляет паролями пользователей

Как Linux хранит и управляет паролями пользователей

Задумывались ли вы, насколько эффективно Linux управляет многопользовательской средой? В этой статье мы объясним, как Linux хранит пароли и логины пользователей и управляет ими.

Изучение файла /etc/passwd

Когда пользователь вводит имя пользователя и пароль, Linux сверяет введенный пароль с записями в неск

Изучение файла /etc/passwd

>

/etc/passwd – один из наиболее важных файлов, в котором хранятся данные пользователя.

отобразить файл /etc/passwd

Последняя запись в этом файле соответствует «углеродным» пользователям. Существует несколько полей информации, разделенных двоеточиями (:).

  • carbon: имя пользователя, которому соответствует эта запись.
  • x: указывает, что для пользователя существует пароль. Однако пароль хранится в файле «/etc/shadow». Если вместо xотображается символ !, это означает, что пароль не существует.
  • 1000: идентификатор этого пользователя.
  • 1000: идентификатор группы, к которой принадлежит этот пользователь.
  • carbon, , ,: указывает несколько полей информации, включая полное имя и номера телефонов. Здесь номера телефонов не указаны.
  • /home/carbon: расположение домашнего каталога, назначенного этому пользователю.
  • /bin/bash: оболочка по умолчанию, назначенная этому пользователю.

Давайте создадим еще одного пользователя, для которого сохранены некоторые номера телефонов. Пользователь «pluto» добавляется в систему с помощью команды adduser.

Поле GECOS пользователя Linux

Снова просматривая файл «etc/passwd», мы можем просмотреть полную информацию о пользователе «pluto». Поле, содержащее список полных имен и номеров, разделенных запятыми, называется «полем GECOS».

отобразить /etc/passwd с данными телефона

При создании пользователя значения домашнего каталога и оболочки по умолчанию, которые необходимо назначить, указываются в файле «/etc/adduser.conf».

adduser.conf

Идентификаторы созданных пользователей начинаются с 1000 и заканчиваются 59999.

Пользователь «carbon» смог просмотреть записи файла «/etc/passwd», просто используя команду cat. Давайте посмотрим на его разрешения.

разрешение файла /etc/passwd

Только пользователь root может писать в файл. Другие пользователи могут только читать файл. Поскольку этот файл доступен для чтения каждому, хранить здесь пароли нецелесообразно. Вместо этого он хранится в другом файле под названием «/etc/shadow».

Изучение файла /etc/shadow

Теперь попробуем просмотреть сохраненные пароли для пользователей «carbon» и «pluto» в файле «/etc/shadow».

Разрешение /etc/shadow отклонено

Посмотрев на права доступа к файлу «/etc/shadow», мы видим, что только пользователь «root» может читать и писать в этот файл. Также файл могут читать только члены группы «тень». На самом деле группа «тени» пуста, но синтаксически необходима для этого файла.

разрешение файла /etc/shadow

Войдя в систему как «root», мы можем просмотреть последние десять строк «/etc/shadow». Для каждой записи в «/etc/passwd» есть соответствующая запись в этом файле. Формат будет такой:

pluto:$6$JvWfZ9u....:18283:0:99999:7:::
отображать записи /etc/shadow

В этом файле каждая запись также имеет несколько полей, разделенных двоеточиями (:). Расшифруем запись для пользователя «Плутон».

  • pluto: имя пользователя, которому соответствует эта запись.
  • $6$JvWfZ9u.$yGFIqOJ....: хешированный пароль пользователя, хранящийся вместе с информацией об используемом алгоритме хеширования. Кроме того, значение соли используется вместе с открытым текстовым паролем для создания хэша пароля.
{ plaintext password, salt} -> hashed passwordИзучение файла /etc/shadowржимое этого поля. Символ $используется в качестве разделителя для разделения трех полей.

$6  $JvWfZ9u.  $yGFIqOJ....
  • $6: используемый алгоритм хеширования. Вот список потенциальных алгоритмов хеширования.
    • $1 : MD5
    • $2a: рыба-игло
    • 2 года: Эксбловфиш
    • 5 долларов США: SHA-256
    • $6: SHA-512
  • $JvWfZ9u.: количество соли.
  • $yGFIqOJ....: хешированный пароль.

Полученное хеш-значение сохраняется как зашифрованный пароль пользователя. Значение соли уникально для каждого пользователя. Даже если у двух пользователей одинаковый пароль в виде открытого текста, использование уникальной соли приведет к созданию уникального хеш-значения.

После остальных полей в этой записи

  • 18283: указывает количество дней с 1 января 1970 г., когда пароль был изменен в последний раз.
  • 0: это поле используется для указания количества дней, по истечении которых пароль можно изменить. Значение 0 означает, что пароль можно изменить в любое время.
  • 99999: в этом поле указывается количество дней, после которых пароль должен быть изменен . Значение 99999 указывает, что пользователь может сохранять пароль столько, сколько пожелает.
  • 7: если срок действия пароля установлен на срок действия, в этом поле указывается количество дней, в течение которых следует предупреждать пользователя об истечении срока действия пароля.
  • : : : Еще три поля являются частью этой записи, хотя здесь они пусты. В первом указано количество дней ожидания после истечения срока действия пароля, по истечении которого учетная запись будет отключена. Во втором указано количество дней с 1 января 1970 года, в течение которых учетная запись была отключена. Третье поле зарезервировано для использования в будущем. Пустые поля означают, что срок действия существующего пароля для этого пользователя не истек и срок его действия не скоро истечет.

Последние семь полей, относящиеся к действительности пароля, в совокупности содержат информацию о «Политике устаревания паролей».

Значения по умолчанию, соответствующие «Политике устаревания паролей», указаны в файле «/etc/login.defs». Эти значения могут быть изменены пользователем с помощью команды change.

логин.defs

А как насчет информации о группе?

Информация пользователя и пароли хранятся в файлах «/etc/passwd» и «/etc/shadow». Аналогично, информация о группе хранится в файле «/etc/group».

отображать записи /etc/group

Выше выделены группы, принадлежащие пользователям «углерод» и «плутон». Когда пользователь создается в Linux, этот пользователь немедленно назначается группе с тем же именем, что и имя пользователя.

Члены группы также могут использовать групповой пароль для действий, связанных с группой. Значение xуказывает, что информация о пароле для этой группы будет находиться в файле «/etc/gshadow».

Однако доступ к «/etc/gshadow» ограничен пользователем «root».

Разрешение /etc/gshadow отклонено

Пользователь root может просматривать записи в файле «/etc/gshadow», который аналогичен «/etc/shadow». Глядя на запись группы «углерод», мы видим, что второе поле имеет значение !, что указывает на то, что пароля для этой группы не существует.

Пароль 11

Собираем все вместе

Когда пользователь желает войти в систему, хеш введенного пароля находится с использованием значения соли этого пользователя в «/etc/shadow». Затем он сравнивается с сохраненным хешем. Если значения совпадают, пользователю предоставляется доступ.

Связано:

А как насчет информации о группе?

Собираем все вместе

ПОХОЖИЕ СТАТЬИ

Популярные записи