изменить тайм-аут входа в систему - ArchLinux

10

По умолчанию, когда я вхожу в свою коробку Arch Linux в tty, после ввода моего имени пользователя происходит тайм-аут, но до того, как я ввожу свой пароль.

Так и происходит

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

Как вы можете видеть, если я не ввожу пароль, он перезагружает запрос - я хочу, чтобы он ждал мой пароль в течение неопределенного времени, вместо того, чтобы перезапускать запрос на вход в систему.

Это возможно?

Кажется, что --timeoutвариант agettyбудет то, что я хочу. Однако я попытался добавить этот флаг в файлы getty /usr/lib/systemd/system/(опция не используется по умолчанию) и перезагрузить компьютер - похоже, это не дало результата.

g33kz0r
источник

Ответы:

11

agettyзвонки loginпосле прочтения имени пользователя, поэтому любой тайм-аут при чтении пароля выполняется login.

Чтобы изменить это, отредактируйте /etc/login.defsи измените значение LOGIN_TIMEOUT.

#
# Max time in seconds for login
#
LOGIN_TIMEOUT       60
Марк Плотник
источник
2
Как бы вы получили, чтобы это длилось бесконечно?
Уилл
3
@ AnEpicPerson Насколько я могу судить, это не документировано, но просматривая код есть #define ALARM 60и timeout = getdef_unum ("LOGIN_TIMEOUT", ALARM); if (timeout > 0) { (void) alarm (timeout); }. Поэтому включение LOGIN_TIMEOUT 0в login.defs должно отключить любое время ожидания.
Марк Плотник
2
  1. В Arch программы устанавливаются по умолчанию /usr/lib. Вы не должны вручную возиться там (почти всегда); определенно не с systemd. systemdобеспечивает переопределение модулей по умолчанию по причине (см. раздел «Путь загрузки модуля» ).

  2. Частично это проблема безопасности. Тайм-аут проверяет наличие небрежности (например, вы вводите свой пароль целиком, но забыли нажать ввод и чем-то отвлеклись). Вы должны знать, что отключение не является самым безопасным решением здесь.

  3. Когда вы редактируете или переопределяете модуль, вам нужно запустить его, systemctl daemon-reloadчтобы systemd полностью распознал изменение. После создания нового модуля /etc/systemd/, вы должны daemon-reloadи затем disableмодуль по умолчанию и enableваш новый модуль. Затем перезагрузка должна дать желаемые результаты. ( Примечание : я советую не делать этого, хотя; см. Пункт 2.)

HalosGhost
источник
1
Что касается вашего пункта 2. - практический смысл в этом состоит в том, что моя 4-летняя девочка может набрать свой 9-буквенный пароль до того, как его сорвут. Если вы ответите полностью, пожалуйста, найдите его в своем сердце, чтобы дать мне решение моего вопроса.
g33kz0r
Я думал, что вы на самом деле на правильном пути с --timeoutопцией, но, глядя на нее дальше (а именно, agettyна man-страницу), кажется, что --timeoutопция относится к вводу имени пользователя, а не пароля.
HalosGhost
@HalosGhost Не нужно ставить '$' перед командами при редактировании сообщений, это расточительно, и это делает более трудным вырезать и вставлять. Делайте это только тогда, когда команды и выходные данные смешаны в одном блоке
Зельда
1
@ Зельда, я не совсем уверен, почему ты это написал здесь. Но я буду иметь это в виду.
HalosGhost