Forzar un cambio de contraseña en OpenBSD

Forzar un cambio de contraseña en OpenBSD

En OpenBSD 5.6 necesito proporcionar varias cuentas de usuario con contraseñas predeterminadas. Me gustaría que los usuarios, en su primer inicio de sesión SSH, se vieran obligados a cambiar sus contraseñas predeterminadas.

En CentOS y Debian puedo hacer esto usando chage -d 0 $username.

Del manual login.conf se desprende que debería poder lograr lo mismo en OpenBSD con algo como:

  • usermod -f 1 $usernameo
  • usermod -f "Jan 1 2015" $username

Configurarlo de esa manera solicita el cambio apropiado en userinfo $username, pero iniciar sesión como $username a través de SSH en realidad no impone un cambio de contraseña: abre el shell con bastante alegría, sin darse cuenta de que la contraseña se ha marcado como inactiva arriba.

Algunas publicaciones del año 2000 hablanescribiendo un shell de inicio de sesión contenedorpara forzar un cambio de contraseña. Dicho esto, dado el andamiaje obvio en usermody chpass, parece que está integrado, pero no está tan documentado como los equivalentes de Linux.

¿Puede un profesional de BSD arrojar algo de luz sobre el enfoque convencional de esto?

Respuesta1

Según login.conf (5), el período de gracia predeterminado para una contraseña caducada (también conocida como "muerta") es 0. A menos que ese valor esté establecido en /etc/login.conf, un usuario no puede iniciar sesión para cambiar su contraseña si la fecha actual del sistema es mayor que el sexto campo de la contraseña de un usuario. entrada en /etc/master.passwd- consulte passwd (5).

Para resolver el problema, deberá especificar una fecha formateada en número de segundos desde la época que se encuentra dentro del período de gracia de su elección, por ejemplo, 2 semanas, que también configurará en formato /etc/login.conf. Para elegir manualmente una hora de vencimiento de contraseña de ayer, podemos usar:

# date -d yesterday +%s
1463597700

Y luego ingrese ese valor en el campo #6 /etc/master.passwdusando vipw. La línea relevante se verá así:

user:$2b$08$01234567890abcdef:1000:1000::1463597700:0:user:/home/user:/bin/ksh

Ejecutar usermod como usted indicó ( usermod -f "May 17 2016" user) hará esencialmente lo mismo, pero en ambos casos /etc/login.conftambién se debe cambiar agregando lo siguiente a la default:\sección correspondiente a su clase de usuario:

    :password-dead=2w:\
    :password-warn=2w:

La primera línea permite un período de gracia de dos semanas para que el usuario cambie su contraseña; la segunda línea emitirá advertencias de que la contraseña de un usuario está programada para caducar. Si caducó, sus usuarios verán algo como lo siguiente:

WARNING: Your password has expired.
You must change your password now and login again!
Changing local password for user.
Old password:
New password:
Retype new password:
Connection to openbsd-server closed.

También puede configurarlo :passwordtime=7776000:para /etc/login.confaplicar un cambio de contraseña adicional cada 90 días. Tenga en cuenta que si necesita comprobaciones adicionales sobre la complejidad de las contraseñas de los usuarios, como prohibir la reutilización de contraseñas, debe instalar y configurar passwordqcdesde paquetes u otro programa de verificación de contraseñas.

información relacionada