Sur toutes les distributions Red Hat telles que Fedora, CentOS ou RHEL, la commande mkpasswd
n'inclut pas le même ensemble de commutateurs que la version généralement fournie avec Debian / Ubuntu.
REMARQUE: La commande mkpasswd
fait en réalité partie du expect
package et doit probablement être évitée. Vous pouvez trouver à quel paquet il appartient avec l'une de ces commandes.
$ yum whatprovides "*/mkpasswd"
-or-
$ repoquery -q --file */mkpasswd
Exemple
$ repoquery -q --file */mkpasswd
expect-0:5.43.0-8.el5.x86_64
expect-0:5.43.0-8.el5.i386
Ces deux méthodes sont supérieures à l'utilisation rpm
car il n'est pas nécessaire d'installer les packages pour les localiser */mkpasswd
.
Solutions de contournement
Pour contourner ce problème, vous pouvez utiliser les one-liners Python ou Perl suivants pour générer des mots de passe SHA-512. Prenez note que ceux-ci sont salés:
Python (> = 3.3)
$ python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(), crypt.mksalt(crypt.METHOD_SHA512)))'
-ou scripté-
$ python -c 'import crypt; print(crypt.crypt("somesecret", crypt.mksalt(crypt.METHOD_SHA512)))'
Python (2.x ou 3.x)
$ python -c "import crypt, getpass, pwd; \
print(crypt.crypt('password', '\$6\$saltsalt\$'))"
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
Remarque: 6 $ désignent sha512. La prise en charge de cette méthode de spécification de l’algorithme dépend de la prise en charge de la fonction de bibliothèque crypt (3) au niveau du système d’exploitation (généralement dans libcrypt). Il ne dépend pas de la version de Python.
Perl
$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'
$6$saltsalt$qFmFH.bQmmtXzyBY0s9v7Oicd2z4XSIecDzlB5KiA2/jctKu9YterLp8wwnSq.qc.eoxqOmSuNp2xS0ktL3nh/
Dans ces exemples, le mot de passe est la chaîne "password" et le sel est "selsalt". Les deux exemples utilisent $ 6 $, ce qui indique que vous voulez que crypt utilise SHA-512.
sha1sum
?