W żadnej dystrybucji systemu Red Hat, takiej jak Fedora, CentOS lub RHEL, polecenie mkpasswd
nie zawiera tego samego zestawu przełączników, co wersja zwykle dołączana do Debian / Ubuntu.
UWAGA: Komenda mkpasswd
jest w rzeczywistości częścią expect
pakietu i prawdopodobnie należy jej unikać. Możesz dowiedzieć się, do którego pakietu należy, używając jednego z tych poleceń.
$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd
Przykład
$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386
Obie te metody są lepsze niż używanie, rpm
ponieważ nie trzeba instalować pakietów, aby je zlokalizować */mkpasswd
.
Obejścia
Aby obejść ten problem, możesz użyć następujących linijek Python lub Perl do wygenerowania haseł SHA-512. Zwróć uwagę, że są one solone:
Python (> = 3.3)
$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'
lub skrypty
$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'
Python (2.x lub 3.x)
$ python -c "import crypt, getpass, pwd; \
print(crypt.crypt('password', '\$6\$saltsalt\$'))"
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
Uwaga: 6 $ oznacza sha512. Obsługa tej metody określania algorytmu zależy od obsługi funkcji biblioteki crypt (3) na poziomie systemu operacyjnego (zwykle w libcrypt). Nie zależy od wersji Pythona.
Perl
$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
W tych przykładach hasło jest ciągiem „hasło”, a solą jest „saltalt”. Oba przykłady używają 6 $, co oznacza, że chcesz używać krypt SHA-512.
sha1sum
?