Je suis tombé sur ce problème en essayant de créer de nouveaux utilisateurs FTP pour vsftpd. En créant un nouvel utilisateur avec la commande suivante et en tentant de me connecter avec FileZilla, j'obtiendrais une erreur "mot de passe incorrect".
useradd f -p pass -d /home/f -s /bin/false
Après cela, / etc / shadow contient
f:pass:1111:0:99:2:::
Une fois que j'ai exécuté la commande suivante et fourni le même laissez- passer
passwd f
/ etc / shadow contient
f:$1$U1c5vVwg$x5TVDDDmhi0a7RWFer6Jn1:1111:0:99:2:::
Il semble que le cryptage se produit lorsque j'exécute passwd , mais pas lors de l' ajout de l' utilisateur
Surtout après avoir fait cela, je suis en mesure de me connecter à FTP avec exactement les mêmes informations d'identification.
J'utilise CentOS 5.11, vsftpd pour FTP et FileZilla pour l'accès FTP
/ var / log / secure contient:
Dec 17 useradd[644]: new group: name=f, GID=511
Dec 17 useradd[644]: new user: name=f, UID=511, GID=511, home=/home/f, shell=/bin/false
Pourquoi cela ne fonctionne-t-il pas lorsque je passe -p pass
à useradd? Que dois-je faire pour que cela fonctionne?
/var/log/secure
$1$
indique que MD5 est utilisé . MD5, bien qu'il ne soit pas carrément terrible pour les mots de passe, est plutôt du côté faible de nos jours. C'est une question entièrement distincte, mais je vous exhorte absolument à envisager de migrer vers une fonction de hachage plus puissante./etc/shadow
ne sont pas chiffrés mais hachésRéponses:
Cela fonctionne comme prévu. Si vous souhaitez définir un mot de passe à l'aide de la
useradd
commande, vous êtes censé donner une version hachée du mot de passe àuseradd
.La chaîne
pass
satisfait aux critères de formatage du champ de mot de passe haché dans/etc/shadow
, mais aucun mot de passe réel ne hache cette chaîne. Le résultat est qu'à toutes fins utiles, ce compte se comportera comme ayant un mot de passe, mais tout mot de passe que vous essayez d'utiliser pour y accéder sera rejeté comme n'étant pas le mot de passe correct.Voir
man useradd
ou la documentation useradd :la source
man
useradd :Vous êtes censé lui transmettre un mot de passe haché.
Pas un mot de passe en clair.
la source
useradd
s'attend à ce que vous lui transmettiez le hachage du mot de passe, pas le mot de passe lui-même. Vous pouvez utiliser la variante suivante de votre commande pour fournir un mot de passe haché à lauseradd
commande:Pour connaître les méthodes disponibles, utilisez:
Afin d'éviter de passer le mot de passe sur la ligne de commande, mettez le mot de passe dans un fichier (en utilisant un éditeur et non en utilisant
echo
ou similaire) et procédez comme suit:Cela passera le mot de passe haché sur la ligne de commande, mais pas celui en texte brut.
mkpasswd
est livré avec leexpect
paquet.la source
passwd
pour le changer en quelque chose d'autre ......