cambiar * su * contraseña de Linux a través de un script bash

Es bastante fácil cambiar otra contraseña de usuario mediante un script bash – solo haz echo newpw | passwd username y bam, ya está. Pero, ¿qué hay de cambiar su contraseña mediante bash? echo newpw | passwd username no funciona porque le solicita su contraseña actual antes de permitirle ingresar su nueva contraseña.

Comentarios

  • ¿Tenía que usar su o sudo para su " ¿Cambiar otro usuario ' contraseña " para que funcione?
  • Solo root puede usar passwd username para un usuario diferente. Cuando ejecuta passwd (sin username) como root no solicita la contraseña anterior (en mi sistema Ubuntu 19.10).
  • Yah – estaba haciendo sudo. La pregunta sigue en pie jajaja
  • Entonces, ¿tenía que ingresar su contraseña para sudo para cambiar la contraseña de otro usuario ' s?
  • Bueno, asígnele la contraseña actual, { sleep .1; echo OLDPASSWORD; for i in 1 2; do sleep .1; echo Trump2020! ; done; } | passwd . Usa ... | script -c passwd /dev/null si passwd quiere leer desde un tty. Pero realmente no debería ' hacer eso. Mejor di lo que ' estás tratando de lograr.

Responder

Si desea cambiar la contraseña del usuario actual, esto también debería funcionar:

echo -e "MyOldPasswd\nMyNewPasswd\nMyNewPasswd" | passwd 

Responder

Podría usar chpasswd .

sudo chpasswd <<<"neubert:newpass" 

Respuesta

Eso no funcionará con ninguna configuración a medias razonable. Solo el root puede cambiar las contraseñas de otros usuarios a través de passwd user (debería solicitar la nueva contraseña). Para cambiar su propia contraseña, haga passwd, debe solicitar la contraseña actual y luego pedir la nueva (y confirmación).

Permitir cualquier usuario aleatorio cambiar las contraseñas de otros es un problema de seguridad enorme .

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *