Vous savez déjà tous à quel point il est important d’utiliser des mots de passe sécuritaires. Dans certains cas, il est d’ailleurs préférable d’utiliser des mots de passe générés au hasard afin que ceux-ci diffèrent les uns des autres, protégeant ainsi les autres comptes contre les intrusions. Linux possède plusieurs utilitaires pour générer des chaînes de caractères pouvant être utilisés comme mot de passe.
Pour générer de courts mots de passe numériques, il est possible d’utiliser la variable d’environnement $RANDOM. Celle-ci génèrera toujours un nombre compris entre 0 et 32767. Toutefois cette option s’avère la moins sécure car les mots de passe numériques peuvent facilement être devinés:
root@server [~]# echo $RANDOM
19565
root@server [~]# echo $RANDOM
26848
Le fichier /dev/urandom est un outil spécial sur les serveurs Linux qui permet de générer facilement et rapidement des mots de passe, ce qui peut s’avérer pratique à l’intérieur de scripts de commandes. Il est possible de spécifier quels types de mots de passe vous souhaitez créer. Par exemple, pour créer un mot de passe numérique de 10 caractères:
root@server [~]# </dev/urandom tr -dc 0-9 | head -c 10
6689803601
Pour créer un mot de passe de 10 caractères, composé uniquement de lettre minuscules:
root@server [~]# </dev/urandom tr -dc a-z | head -c 10
pcwycmorhx
Et pour créer un mot de passe de 25 caractères, composé de caractères alphanumériques:
root@server [~]# </dev/urandom tr -dc A-Za-z0-9 | head -c25
pl3GElv2rh7haQ6U9EtTDMaFD
Voyons maintenant comment intégrer la commande /dev/urandom afin de générer un mot de passe au hasard et l’appliquer à un compte d’utilisateur en passant le résultat à la commande passwd:
PASS=$(</dev/urandom tr -dc A-Za-z0-9 | head -c25) ; echo $PASS ; echo $PASS | passwd --stdin user1
Sur un serveur cPanel, il est possible de réinitialiser tous les mots de passe en utilisant un simple script de commandes en boucle. Créez un fichier nommé chpass.sh avec le contenu suivant:
#!/bin/bash
for user in $(ls /var/cpanel/users)
do
PASS=$(</dev/urandom tr -dc A-Za-z0-0 | head -c25)
/scripts/realchpass $user "$PASS"
echo $PASS
done




