У будь-якому з дистрибутивів Red Hat, таких як Fedora, CentOS або RHEL, команда mkpasswd
не включає той самий набір комутаторів, як версія, що зазвичай входить до Debian / Ubuntu.
ПРИМІТКА . Команда mkpasswd
фактично є частиною expect
пакету, і, ймовірно, її слід уникати. Ви можете дізнатися, до якого пакету належить будь-яка з цих команд.
$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd
Приклад
$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386
Обидва ці способи відрізняються перевагою використання, rpm
оскільки для їх пошуку не потрібно встановлювати пакети */mkpasswd
.
Обхідні шляхи
Щоб вирішити це, ви можете використовувати наступні одношарові Python або Perl для створення паролів SHA-512. Зверніть увагу, що вони солоні:
Python (> = 3,3)
$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'
-і сценарій-
$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'
Python (2.x або 3.x)
$ python -c "import crypt, getpass, pwd; \
print(crypt.crypt('password', '\$6\$saltsalt\$'))"
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
Примітка: $ 6 $ позначає sha512. Підтримка цього методу вказівки алгоритму залежить від підтримки функцій бібліотеки криптів (3) рівня (3) (зазвичай в libcrypt). Це не залежить від версії python.
Perl
$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
У цих прикладах паролем є рядок "пароль", а сіль - "сольовий соль". В обох прикладах використовується $ 6 $, що означає, що ви хочете, щоб крипта використовувала SHA-512.
sha1sum
?