Вам может потребоваться некоторая справочная информация о форматах хранения паролей Linux - особенно о конфигурации теневых паролей, прежде чем вы сможете реализовать свои собственные.
В дистрибутивах Linux, использующих glibc2 , хеш-функция имеет «магический бит» и префикс «соль».
Волшебный бит начинается с '$ x $' и используется для определения используемой хеш-функции:
- 1 $ за MD5
- 2 $ для Blowfish,
- $ 5 $ для SHA-256 и
- 6 $ для SHA-512
(другие Unix-системы, такие как NetBSD, могут иметь другие значения для этого).
Затем за магическим битом следуют 8 битов, которые составляют соль и, необязательно, заканчиваются другим "$". Между этим и следующим "$" вы найдете хеш действительного пароля.
Почти все современные системы Linux в наши дни НЕ хранят пароли в удобочитаемом мире /etc/passwd
. Вместо этого пароли скрываются в /etc/shadow
, где только права доступа root доступны для чтения. Если используется схема теневого пароля, в файле /etc/passwd
вместо пароля отображается символ «*» или «x».
Формат типичного пароля в /etc/shadow
будет выглядеть следующим образом:
$a:$b:$c:$e:$f:$g:$h:$i
Где:
$ a : имя пользователя
$ b : соль и хешированный пароль (как описано выше). Если это "NP" или "!" или ноль, то это означает, что у учетной записи нет пароля. «LK» или «*» означает, что учетная запись заблокирована, и пользователь не сможет войти в систему. "!!" означает, что срок действия пароля истек
$ c : Дни с момента последнего изменения пароля
$ d : дней до внесения изменений
$ e : Требуется дней до изменения
$ f : предупреждение о днях истечения
$ g : дней до неактивности аккаунта
$ h : Дни с момента окончания срока действия учетной записи
$ i : зарезервировано для будущего использования.
Пример файла теневого пароля можно найти по адресу: http://configuration.logfish.net/index.php/etc/shadow
Ссылка:
crypt (3) - справочная страница Linux
Зачем скрывать ваш файл passwd?
Понимание хэшей паролей Linux
Теневой пароль в Википедии