ubah batas waktu login tty - ArchLinux

10

Secara default ketika saya masuk ke kotak Arch linux saya di tty, ada batas waktu setelah saya mengetik nama pengguna saya tetapi sebelum saya mengetikkan kata sandi saya.

Begitulah yang terjadi

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

Seperti yang Anda lihat, jika saya tidak mengetik kata sandi, ia akan mendaur ulang prompt - Saya ingin ia menunggu kata sandi saya tanpa batas alih-alih mendaur ulang prompt login.

Apakah ini mungkin?

Sepertinya --timeoutpilihan untuk agettymenjadi apa yang saya inginkan. Namun, saya mencoba menambahkan flag ini pada file getty in /usr/lib/systemd/system/(opsi ini tidak digunakan secara default), dan me-reboot - sepertinya tidak berpengaruh.

g33kz0r
sumber

Jawaban:

11

agettypanggilan loginsetelah membaca dalam nama pengguna, sehingga batas waktu saat membaca kata sandi dilakukan oleh login.

Untuk mengubah ini, edit /etc/login.defsdan ubah nilai LOGIN_TIMEOUT.

#
# Max time in seconds for login
#
LOGIN_TIMEOUT       60
Tandai Plotnick
sumber
2
Bagaimana Anda membuatnya bertahan tanpa batas?
Will Dereham
3
@ AnEpicPerson Ini tidak didokumentasikan, sejauh yang saya bisa lihat, tetapi melihat melalui kode ada #define ALARM 60dan timeout = getdef_unum ("LOGIN_TIMEOUT", ALARM); if (timeout > 0) { (void) alarm (timeout); }. Jadi memasukkan LOGIN_TIMEOUT 0login.defs harus menonaktifkan batas waktu.
Mark Plotnick
2
  1. Di Arch, program menginstal default ke /usr/lib. Anda seharusnya tidak bermain-main secara manual di sana (hampir pernah); jelas tidak dengan systemd. systemdmemberikan penggantian unit default karena suatu alasan (lihat bagian "Jalur Muat Unit" ).

  2. Sebagian dari ini adalah masalah keamanan. Timeout memeriksa kembali untuk kelalaian (misalnya, Anda mengetik seluruh kata sandi, tetapi lupa untuk menekan enter dan terganggu oleh sesuatu). Anda harus menyadari bahwa menonaktifkannya bukanlah keputusan yang paling aman di sini.

  3. Ketika Anda mengedit atau menimpa unit, Anda harus menjalankan systemctl daemon-reloadagar systemd untuk sepenuhnya mengenali perubahan. Setelah membuat unit baru /etc/systemd/, Anda harus daemon-reloaddan kemudian disableunit default dan enableunit baru Anda. Kemudian, reboot harus menghasilkan hasil yang Anda inginkan. ( Catatan : Saya menyarankan untuk tidak melakukannya; lihat poin 2.)

HalosGhost
sumber
1
Mengenai poin Anda 2. - impor praktis untuk melakukan ini adalah agar anak saya yang berusia 4 tahun dapat mengetikkan kata sandi 9 hurufnya sebelum digagalkan. Berikan jawaban Anda secara keseluruhan, silakan temukan di hati Anda untuk memberi saya solusi untuk pertanyaan saya.
g33kz0r
Saya pikir Anda benar-benar berada di jalur yang benar dengan --timeoutopsi tersebut, tetapi melihat lebih jauh ke dalamnya (yaitu, agettyhalaman manual), sepertinya --timeoutopsi tersebut mengacu pada memasukkan nama pengguna, bukan kata sandi.
HalosGhost
@HalosGhost Tidak perlu meletakkan '$' sebelum perintah saat mengedit posting, itu boros, dan itu membuat semakin sulit untuk memotong dan menempel. Hanya lakukan ketika perintah dan output dicampurkan dalam satu blok
Zelda
1
@Zelda, saya tidak benar-benar yakin mengapa Anda mempostingnya di sini. Tapi, aku akan mengingatnya.
HalosGhost