Что такое файл Linux / etc / shadow и для чего он нужен?

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

Сегодня мы более подробно рассмотрим содержимое файла / etc / shadow и то, что он может рассказать вам о вашей системе.

Что такое / etc / shadow?

Как бы загадочно это ни звучало, функция файла довольно проста. Файл / etc / shadow содержит информацию о пользователях системы Linux, их паролях и правилах времени для их паролей.

Когда вы создаете или меняете пароль в Linux , система хеширует и сохраняет его в теневом файле. Любые правила паролей, назначенные администратором, такие как срок действия и периоды бездействия, также останутся здесь. Затем теневой файл может сообщить протоколам аутентификации, правильный ли пароль пользователя, например, или когда он истек.

Вы никогда не должны редактировать теневой файл напрямую. Он поддерживается автоматизированными процессами и не предназначен для внесения изменений обычными пользователями. Тем не менее, содержащаяся в нем информация может быть для вас ценной, поэтому на нее стоит взглянуть.

Что находится в теневом файле Linux?

Чтобы увидеть содержимое теневого файла, откройте терминал и введите на нем команду cat :

 sudo cat /etc/shadow

Вы увидите запрос с запросом пароля. Предполагая, что у вас есть права администратора, вы увидите распечатку строк текста, которые выглядят примерно так (многоточием отмечено место, где строка была обрезана, чтобы соответствовать вашему экрану):

 muo1:$6$IK2...$20a...:18731:0:99999:7:::

Это выглядит загадочно, и действительно, часть его представляет собой зашифрованный текст. Строка следует определенной конструкции, однако, и дома определенные биты информации, очерченных по толстой кишке (:) характер.

Вот полный макет строки:

 [username]:[password]:[date of last password change]:[minimum password age]:[maximum password age]:[warning period]:[inactivity period]:[expiration date]:[unused]

Давайте подробнее рассмотрим каждое из этих полей:

1. Имя пользователя

Все, что следует за строкой, связано с этим именем пользователя.

2. Пароль

Поле пароля состоит из трех дополнительных полей, обозначенных знаками доллара: $ id $ salt $ hash .

  • id: определяет алгоритм шифрования, используемый для шифрования вашего пароля. Значения могут быть 1 (MD5), 2a (Blowfish), 2y (Eksblowfish), 5 (SHA-256) или 6 (SHA-512).
  • соль: это соль, используемая при шифровании и аутентификации пароля.
  • hash: это пароль пользователя, который появляется после хеширования. Теневой файл хранит хешированную версию вашего пароля, поэтому система может проверить любую попытку ввести ваш пароль.

Подробнее: определение основных терминов шифрования

Иногда поле пароля содержит только звездочку ( * ) или восклицательный знак ( ! ). Это означает, что система отключила учетную запись пользователя или пользователь должен пройти аутентификацию с помощью иных средств, кроме пароля. Это часто случается с системными процессами (также известными как псевдопользователи), которые вы, вероятно, также найдете в теневом файле.

3. Дата последней смены пароля.

Здесь вы найдете информацию о том, когда этот пользователь в последний раз менял свой пароль. Обратите внимание, что система отображает дату в формате времени Unix .

4. Минимальный возраст пароля

Здесь вы найдете количество дней, в течение которых пользователь должен подождать после смены пароля, прежде чем менять его снова.

Если минимум не установлен, значение здесь будет 0.

5. Максимальный возраст пароля

Это определяет, как долго пользователь может работать, не меняя свой пароль. Частая смена пароля имеет свои преимущества , но по умолчанию установлено значение 99 999 дней. Это близко к 275 годам.

6. Период предупреждения

Это поле определяет количество дней до того, как пароль достигнет максимального срока действия, в течение которых пользователь будет получать напоминания о смене пароля.

7. Период бездействия

Это количество дней, которое может пройти после того, как пароль пользователя достигнет максимального возраста, прежде чем система отключит учетную запись. Думайте об этом как о «льготном периоде», в течение которого у пользователя есть второй шанс изменить свой пароль, даже если он технически истек.

8. Срок годности

Эта дата является окончанием периода бездействия, когда система автоматически отключит учетную запись пользователя. После отключения пользователь не сможет войти в систему, пока администратор не включит его снова.

Это поле будет пустым, если не установлено, а если оно установлено, дата будет отображаться во времени.

9. Не используется

В настоящее время это поле не используется и зарезервировано для возможного использования в будущем.

Объяснение файла теней

Теневой файл на самом деле совсем не загадочен. Однако помните, что если вы хотите изменить пароли и правила для паролей, вам следует избегать непосредственного редактирования теневого файла и вместо этого использовать инструменты, предназначенные для этой цели.

Каждый раз, когда вы добавляете нового пользователя в свою систему Linux, файл / etc / shadow автоматически модифицируется для хранения аутентификационной информации о пользователе.