Можете ли вы объяснить формат файла /etc/shadow, используемый в Linux или UNIX-подобных системах?
В файле /etc/shadow хранится фактический пароль в зашифрованном формате (больше похожий на хэш пароля) для учетной записи пользователя с дополнительными свойствами, связанными с паролем пользователя.
По сути, он хранит безопасную информацию об учетной записи пользователя.
Все поля разделены двоеточием (:).
Он содержит по одной записи в каждой строке для каждого пользователя, указанного в файле /etc/passwd.
Обычно запись этого файла выглядит следующим образом:
1.Имя пользователя: это ваше имя для входа в систему.
2. Пароль: это ваш зашифрованный пароль. Пароль должен состоять минимум из 8–12 символов, включая специальные символы, цифры, буквы нижнего регистра и т. д.
Обычно формат пароля такое – $id$salt$hashed. $Id – это алгоритм, используемый в GNU / Linux следующим образом:
- $1$ это MD5
- $2a$ это Blowfish
- $2y$ это Blowfish
- $5$ это SHA-256
- $6$ этоSHA-512
3. Последнее изменение пароля (последнее изменение): дни с 1 января 1970 г., когда последний раз меняли пароль.
4. Минимум: минимальное количество дней, необходимое для смены пароля, то есть количество дней, оставшихся до того, как пользователю будет разрешено изменить свой пароль.
5. Максимум: максимальное количество дней, в течение которых пароль действителен (после того, как этот пользователь будет вынужден изменить свой пароль)
6. Предупреждение: количество дней до истечения срока действия пароля, в течение которого пользователя предупреждают о необходимости изменения пароля.
7. Неактивность: количество дней после истечения срока действия пароля, в течение которого учетная запись отключена.
8. Срок действия: дни с 1 января 1970 года, когда эта учетная запись отключена, то есть абсолютная дата, указывающая, когда логин больше не может использоваться.
Как изменить пароль?
Используйте следующий синтаксис, чтобы изменить собственный пароль:
$ passwd
Как изменить пароль другому пользователю?
# passwd userNameHere
$ sudo passwd userNameHere
Как изменить или установить информацию об устаревании пароля?
chage username chage [options] username chage itsecforu chage -l tom
-d, --lastday LAST_DAY set date of last password change to LAST_DAY -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE -h, --help display this help message and exit -I, --inactive INACTIVE set password inactive after expiration to INACTIVE -l, --list show account aging information -m, --mindays MIN_DAYS set minimum number of days before password change to MIN_DAYS -M, --maxdays MAX_DAYS set maximim number of days before password change to MAX_DAYS -R, --root CHROOT_DIR directory to chroot into -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
Как проверить целостность файлов паролей?
Используйте команду pwck, чтобы проверить целостность пользователей и аутентификационной информации.
Он проверяет, что все записи в /etc/passwd и /etc/shadow имеют правильный формат и содержат допустимые данные.
Пользователю предлагается удалить записи, которые имеют неправильный формат или другие неисправимые ошибки. Синтаксис:
pwck -r /etc/passwd pwck -r /etc/shadow pwck [options] /etc/shadow
Возможны следующие варианты:
-h, --help display this help message and exit -q, --quiet report errors only -r, --read-only display errors and warnings but do not change files -R, --root CHROOT_DIR directory to chroot into -s, --sort sort entries by UID
См. также:
Как применить политику надежных паролей пользователей в Ubuntu / Debian
🔑 Настройка политики истечения срока действия пароля пользователей в Linux
🏳️🌈 Три способа заблокировать и разблокировать учетную запись пользователя в Linux