Saat ini saya mulai memahami PAM. Saat ini saya menggunakan OTP dan kata sandi, tetapi saya ingin dapat menggunakan OTP dan kata sandi dan jika gagal gunakan YubiKey dan kata sandi saya. Saya menggunakan Arch dan file auth sistem saya di direktori pam.d terlihat seperti ini:
auth required pam_oath.so usersfile=/etc/users.oath window=30 digits=6 debug
auth required pam_unix.so try_first_pass nullok
auth optional pam_permit.so
auth required pam_env.so
account required pam_unix.so
account optional pam_permit.so
account required pam_time.so
password required pam_unix.so try_first_pass nullok sha512 shadow
password optional pam_permit.so
session required pam_limits.so
session required pam_unix.so
session optional pam_permit.so
Jawaban yang Diterima:
Arch adalah PAM Linux (yang berbeda dari Solaris PAM dan FreeBSD PAM) dan PAM Linux memiliki cara untuk melewati aturan, jadi salah satu cara untuk melakukannya adalah mengikuti baris
auth required pam_unix.so ... # password
auth [success=2 default=bad] pam_yubikey ...
auth [success=1 default=bad] pam_otp ...
auth required pam_deny.so
auth required pam_env.so
...
yang untuk yubikey jika berhasil harus melompati dua aturan (ke env
dan setiap langkah penyiapan autentikasi berikutnya) dan untuk OTP satu aturan turun untuk hal yang sama, jika tidak, penolakan autentikasi. Saya tidak yakin apa default
atau opsi lain untuk [...]
bit seharusnya, jadi saya mengaturnya agar gagal.
Opsi lain adalah substack, di file aturan utama Anda akan memiliki sesuatu seperti:
...
auth substack otp-foo
auth substack yubikey-foo
...
dan kemudian /etc/pam.d/{otp-foo,yubikey-foo}
tambahan file yang akan dilakukan jika-authgood-or-pam_deny. Namun, dalam kasus ini keduanya akan dicoba (Linux PAM bekerja melalui semua substacks) tidak seperti contoh sebelumnya di mana jika yubikey berfungsi, pemeriksaan otp akan dilewati.