Введение
Существует несколько схем аутентификации, которые можно использовать в системах Linux. Наиболее часто используемая стандартная схема заключается в аутентификации в /etc/passwd
и /etc/shadow
.
/etc/shadow
— это текстовый файл, содержащий информацию о паролях пользователей системы. Он принадлежит пользователю root и теневой группе и имеет права доступа 640.
Формат файла /etc/shadow
/etc/shadow
содержит по одной записи на строку, каждая из которых представляет учетную запись пользователя. Вы можете просмотреть содержимое файла с помощью текстового редактора или команды, такой как cat
:
sudo cat /etc/shadow
Как правило, первая строка описывает пользователя root, за которым следуют учетные записи системы и обычных пользователей. Новые записи добавляются в конец файла.
Каждая строка /etc/shadow
содержит девять полей, разделенных запятыми:
mark:$6$.n.:17736:0:99999:7:::
[--] [----] [---] - [---] ----
| | | | | |||+-----------> 9. Unused
| | | | | ||+------------> 8. Expiration date
| | | | | |+-------------> 7. Inactivity period
| | | | | +--------------> 6. Warning period
| | | | +------------------> 5. Maximum password age
| | | +----------------------> 4. Minimum password age
| | +--------------------------> 3. Last password change
| +---------------------------------> 2. Encrypted Password
+----------------------------------------> 1. Username
- Имя пользователя. Строка, вводимая при входе в систему. Учетная запись пользователя, существующая в системе.
- Зашифрованный пароль. Пароль использует
$type$salt$hashed
.$type
— алгоритм шифрования хэша метода и может принимать следующие значения:
$1$
- MD5
$2a$
- Иглобрюх
$2y$
- Эксблоуфиш
$5$
- ША-256
$6$
- ША-512
Если поле пароля содержит звездочку ( *
) или восклицательный знак ( !
), пользователь не сможет войти в систему, используя аутентификацию по паролю. Другие методы входа в систему, такие как аутентификация на основе ключа или передача пользователя, по-прежнему разрешены.
В старых системах Linux зашифрованный пароль пользователя хранился в /etc/passwd
.
- Последняя смена пароля. Это дата последнего изменения пароля. Количество дней отсчитывается с 1 января 1970 года (дата эпохи).
- Минимальный срок действия пароля. Количество дней, которое должно пройти, прежде чем пароль пользователя можно будет изменить. Обычно он равен нулю, что означает отсутствие минимального срока действия пароля.
- Максимальный срок действия пароля. Количество дней после смены пароля пользователя. По умолчанию этот номер установлен на
99999
. - Период предупреждения. Количество дней до истечения срока действия пароля, в течение которых пользователь уведомляется о необходимости смены пароля.
- Период бездействия. Количество дней после истечения срока действия пароля пользователя до отключения учетной записи. Это поле обычно пустое.
- Срок годности. Дата отключения учетной записи. Он представлен как дата эпохи.
- Неиспользованный. Это поле игнорируется. Он зарезервирован для использования в будущем.
/etc/shadow
не нужно редактировать вручную, если вы не знаете, что делаете. Всегда используйте команду, предназначенную для этой цели. Например, чтобы изменить пароль пользователя, используйте команду passwd
, а чтобы изменить информацию об истечении срока действия пароля, используйте команду chage
.
Пример
Давайте посмотрим на следующий пример:
noviello:$1$bgfrJMa5U384smbQ$z6nch...:18009:0:120:7:14::
Запись выше содержит информацию о пароле пользователя "noviello":
- Пароль зашифрован с помощью SHA-512 (пароль усечен для лучшей читаемости).
- Последний раз пароль менялся 23 апреля 2019 года —
18009
. - Минимального возраста для пароля нет.
- Пароль необходимо менять не реже одного раза в 120 дней.
- Пользователь получит предупреждающее сообщение за семь дней до истечения срока действия пароля.
- Если пользователь не попытается войти в систему в течение 14 дней после истечения срока действия пароля, учетная запись будет отключена.
- Срок действия учетной записи отсутствует.
Вывод
Файл /etc/shadow
отслеживает пароли зашифрованных пользователей и другую информацию, связанную с паролями.