/etc/shadow - Как: Сгенерировать Хэш Пароля в Linux

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

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

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

Нет необходимости устанавливать дополнительные утилиты, так как это может быть легко сделано из командной строки в Linux с помощью Python.

Сгенерировать Хэш Пароля для /etc/shadow

Читайте: Шифрование Файлов с Помощью Пароля Используя OpenSSL

Зашифрованные пароли в /etc/shadow хранятся в следующем формате:

$ID$SALT$ENCRYPTED

$ID обозначает тип шифрования, $SALT - это случайная (до 16 символов) строка и $ENCRYPTED - хэш пароля.

Тип Хэша ID Длина Хэша
MD5 $1 22 символов
SHA-256 $5 43 символов
SHA-512 $6 86 символов

Используйте следующие команды из терминала в Linux для создания хэшированых паролей со случайной солью для /etc/shadow.

Читайте: Создать Зашифрованный ZIP Архив в Linux

Создать MD5 Хэш пароля

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$1\$%s\$' % randomsalt)"
$1$TbmEpHMW$05UMvhmGD4Mu27t6ND7AT0

Создать SHA-256 Хэш пароля

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$5\$%s\$' % randomsalt)"
$5$EbuBToLa$m6di42WAC01AbsKjA01t5c.L9oZ9foHc1Ch4CysHFG3

Создать SHA-512 Хэш пароля

python -c "import random,string,crypt; randomsalt = ''.join(random.sample(string.ascii_letters,8)); print crypt.crypt('MySecretPassword', '\$6\$%s\$' % randomsalt)"
$6$TOegwWck$6WGKWqOBM7LiVPGgOoHQ16GmAuGrJoyP/TZY/N12DNPbEzXfyk/06HI.vTi1WJnppYxysIS6XI0TW0NYi3KKS.