changer le délai de connexion tty - ArchLinux

10

Par défaut, lorsque je me connecte à ma boîte Arch linux dans un terminal, il y a un délai d'attente après avoir tapé mon nom d'utilisateur mais avant de taper mon mot de passe.

Alors ça va comme ça

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

Comme vous pouvez le voir, si je ne tape pas le mot de passe, il recycle l'invite - je veux qu'il attende indéfiniment mon mot de passe au lieu de recycler l'invite de connexion.

Est-ce possible?

Il semble que l' --timeoutoption agettysoit ce que je veux. Cependant, j'ai essayé d'ajouter cet indicateur dans les fichiers Getty /usr/lib/systemd/system/(l'option n'est pas utilisée par défaut) et de redémarrer - cela semblait n'avoir aucun effet.

g33kz0r
la source

Réponses:

11

agettyappelle loginaprès avoir lu le nom d'utilisateur, donc tout délai d'attente lors de la lecture du mot de passe est effectué par login.

Pour modifier cela, modifiez /etc/login.defset modifiez la valeur LOGIN_TIMEOUT.

#
# Max time in seconds for login
#
LOGIN_TIMEOUT       60
Mark Plotnick
la source
2
Comment feriez-vous pour que cela dure indéfiniment?
Will Dereham
3
@AnEpicPerson Ce n'est pas documenté, pour autant que je sache, mais en parcourant le code, il y a #define ALARM 60et timeout = getdef_unum ("LOGIN_TIMEOUT", ALARM); if (timeout > 0) { (void) alarm (timeout); }. Donc, mettre LOGIN_TIMEOUT 0login.defs devrait désactiver tout timeout.
Mark Plotnick
2
  1. Dans Arch, les programmes installent les valeurs par défaut sur /usr/lib. Vous ne devriez pas jouer manuellement là-dedans (presque jamais); certainement pas avec systemd. systemdpermet de remplacer les unités par défaut pour une raison (voir la section "Chemin de chargement des unités" ).

  2. Une partie de cela est un problème de sécurité. Le délai d'attente vérifie la négligence (par exemple, vous tapez votre mot de passe complet, mais oubliez d'appuyer sur Entrée et êtes distrait par quelque chose). Vous devez savoir que la désactiver n'est pas la décision la plus sûre ici.

  3. Lorsque vous modifiez ou remplacez une unité, vous devez exécuter systemctl daemon-reloadpour que systemd reconnaisse entièrement le changement. Après avoir créé la nouvelle unité dans /etc/systemd/, vous devez daemon-reload, puis disablel'unité par défaut et enablevotre nouvelle unité. Ensuite, le redémarrage devrait donner les résultats souhaités. ( Remarque : je déconseille cependant de le faire; voir le point 2.)

HalosGhost
la source
1
Concernant votre point 2. - L'importance pratique de le faire est que mon enfant de 4 ans puisse réussir à taper son mot de passe de 9 lettres avant d'être contrarié. Re votre réponse dans son intégralité, veuillez la trouver dans votre cœur pour me donner une solution à ma question.
g33kz0r
J'avais pensé que vous étiez en fait sur la bonne voie avec l' --timeoutoption, mais en y regardant plus loin (à savoir, agettyla page de manuel de), il semble que l' --timeoutoption se réfère à la saisie du nom d'utilisateur, pas du mot de passe.
HalosGhost
@HalosGhost Pas besoin de mettre '$' avant les commandes lors de l'édition de messages, c'est du gaspillage, et cela rend plus difficile le copier-coller. Ne faire que lorsque les commandes et la sortie sont mélangées dans un seul bloc
Zelda
1
@Zelda, je ne sais pas vraiment pourquoi vous avez posté ça ici. Mais je garderai cela à l'esprit.
HalosGhost