Auf allen Red Hat-Distributionen wie Fedora, CentOS oder RHEL enthält der Befehl mkpasswd
nicht die gleichen Switches wie die in Debian / Ubuntu normalerweise enthaltene Version.
HINWEIS: Der Befehl mkpasswd
ist tatsächlich Teil des expect
Pakets und sollte wahrscheinlich vermieden werden. Mit diesen Befehlen können Sie herausfinden, zu welchem Paket es gehört.
$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd
Beispiel
$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386
Beide Methoden sind der Verwendung überlegen, rpm
da die Pakete zum Suchen nicht installiert werden müssen */mkpasswd
.
Problemumgehungen
Um dies zu umgehen, können Sie die folgenden Python- oder Perl-Einzeiler verwenden, um SHA-512-Kennwörter zu generieren. Beachten Sie, dass diese gesalzen sind:
Python (> = 3,3)
$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'
-oder gescriptet-
$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'
Python (2.x oder 3.x)
$ python -c "import crypt, getpass, pwd; \
print(crypt.crypt('password', '\$6\$saltsalt\$'))"
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
Hinweis: $ 6 $ bezeichnet sha512. Die Unterstützung dieser Methode zur Angabe des Algorithmus hängt von der Unterstützung der Bibliotheksfunktion crypt (3) auf Betriebssystemebene ab (normalerweise in libcrypt). Es ist nicht abhängig von der Python-Version.
Perl
$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
In diesen Beispielen ist das Passwort die Zeichenfolge "Passwort" und das Salz ist "Salzsalz". In beiden Beispielen wird $ 6 $ verwendet, was bedeutet, dass Sie möchten, dass Crypt SHA-512 verwendet.
sha1sum
?