cambiar el tiempo de espera de inicio de sesión tty - ArchLinux

10

Por defecto, cuando inicio sesión en mi cuadro Arch Linux en un tty, hay un tiempo de espera después de escribir mi nombre de usuario pero antes de escribir mi contraseña.

Entonces va así

Login:  mylogin <enter>
Password:
(+ 60 seconds)
Login:

Como puede ver, si no escribo la contraseña, recicla la solicitud, quiero que espere indefinidamente mi contraseña en lugar de reciclar la solicitud de inicio de sesión.

es posible?

Parece que la --timeoutopción agettysería lo que quiero. Sin embargo, intenté agregar este indicador en los archivos getty en /usr/lib/systemd/system/(la opción no se usa de manera predeterminada) y reiniciar, parecía no tener efecto.

g33kz0r
fuente

Respuestas:

11

agettyllama logindespués de leer el nombre de usuario, por lo que cualquier tiempo de espera al leer la contraseña se realiza por login.

Para cambiar esto, edite /etc/login.defsy cambie el valor LOGIN_TIMEOUT.

#
# Max time in seconds for login
#
LOGIN_TIMEOUT       60
Mark Plotnick
fuente
2
¿Cómo conseguirías que dure infinitamente?
Will Dereham el
3
@AnEpicPerson No está documentado, por lo que puedo ver, pero mirando a través del código existe #define ALARM 60y timeout = getdef_unum ("LOGIN_TIMEOUT", ALARM); if (timeout > 0) { (void) alarm (timeout); }. Por lo tanto, LOGIN_TIMEOUT 0ingresar a login.defs debería deshabilitar cualquier tiempo de espera.
Mark Plotnick
2
  1. En Arch, los programas instalan por defecto /usr/lib. No deberías estar jugando manualmente allí (casi nunca); Definitivamente no con systemd. systemdproporciona la anulación de las unidades predeterminadas por un motivo (consulte la sección "Ruta de carga de la unidad" ).

  2. Parte de esto es un problema de seguridad. El tiempo de espera regresa por negligencia (por ejemplo, escribe su contraseña completa, pero olvida presionar enter y se distrae por algo). Debe tener en cuenta que deshabilitarlo no es la decisión más segura aquí.

  3. Cuando edita o anula una unidad, debe ejecutarla systemctl daemon-reloadpara que systemd reconozca completamente el cambio. Después de crear la nueva unidad /etc/systemd/, debe daemon-reloady luego disablela unidad predeterminada y enablesu nueva unidad. Luego, reiniciar debería producir los resultados que desea. ( Nota : no recomiendo hacerlo; ver punto 2).

HalosGhost
fuente
1
Con respecto a su punto 2. - la importancia práctica de hacer esto es para que mi hijo de 4 años pueda escribir su contraseña de 9 letras antes de ser frustrada. Responda su respuesta en su totalidad, encuéntrela en su corazón para darme una solución a mi pregunta.
g33kz0r
Pensé que en realidad estaba en el camino correcto con la --timeoutopción, pero mirando más a fondo (es decir, agettyla página de manual de man), parece que la --timeoutopción se refiere al ingreso del nombre de usuario, no la contraseña.
HalosGhost
@HalosGhost No es necesario poner '$' antes de los comandos al editar publicaciones, es un desperdicio y eso hace que sea más difícil cortar y pegar. Solo lo hace cuando los comandos y la salida se entremezclan en un bloque
Zelda
1
@Zelda, no estoy seguro de por qué publicaste eso aquí. Pero, lo tendré en cuenta.
HalosGhost