Me topé con este problema al intentar crear nuevos usuarios FTP para vsftpd. Al crear un nuevo usuario con el siguiente comando e intentar iniciar sesión con FileZilla, obtendría un error de "contraseña incorrecta".
useradd f -p pass -d /home/f -s /bin/false
Después de hacer esto, / etc / shadow contiene
f:pass:1111:0:99:2:::
Una vez que ejecuto el siguiente comando y proporciono el mismo pase
passwd f
/ etc / shadow contiene
f:$1$U1c5vVwg$x5TVDDDmhi0a7RWFer6Jn1:1111:0:99:2:::
Parece que el cifrado ocurre cuando ejecuto passwd , pero no con useradd
Es importante destacar que después de hacer esto, puedo iniciar sesión en FTP con las mismas credenciales.
Estoy usando CentOS 5.11, vsftpd para FTP y FileZilla para acceso FTP
/ var / log / secure contiene:
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
¿Por qué no funciona cuando paso -p passa useradd? ¿Qué necesito hacer para que funcione?

/var/log/secure$1$cuenta que en un hash de contraseña, indica que se utiliza MD5 . MD5, aunque no es absolutamente terrible para las contraseñas, está más bien débil en estos días. Es una pregunta completamente separada, pero le recomiendo que considere migrar a una función hash más fuerte./etc/shadowRespuestas:
Eso está funcionando según lo previsto. Si desea establecer una contraseña con el
useraddcomando, debe proporcionar una versión hash de la contraseñauseradd.La cadena
passsatisface los criterios de formato para el campo de contraseña hash/etc/shadow, pero no hay hash de contraseña real para esa cadena. El resultado es que, a todos los efectos, esa cuenta se comportará como una contraseña, pero cualquier contraseña que intente utilizar para acceder a ella será rechazada por no ser la contraseña correcta.Consulte
man useraddo la documentación de useradd :fuente
manuseradd :Se supone que debe pasarle una contraseña hash.
No es una contraseña de texto sin formato.
fuente
useraddespera que le pase el hash de la contraseña, no la contraseña en sí. Puede usar la siguiente variación en su comando para proporcionar una contraseña hash para eluseraddcomando:Para conocer los métodos disponibles, use:
Para evitar pasar la contraseña en la línea de comando, coloque la contraseña en un archivo (usando un editor y no usando
echoo similar) y haga esto:Esto pasará la contraseña hash en la línea de comando, pero no la de texto sin formato.
mkpasswdViene con elexpectpaquete.fuente
passwdpara cambiar a otra cosa ......