Katakanlah saya telah mengonfigurasi sshd
(ditautkan ke libpam.so.0
perpustakaan bersama) untuk menggunakan PAM dan saya telah mengikuti /etc/pam.d/sshd
konten:
auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_unix.so try_first_pass
auth required pam_google_authenticator.so
account requisite pam_nologin.so
account required pam_unix.so try_first_pass
password requisite pam_cracklib.so
password required pam_unix.so use_authtok nullok shadow try_first_pass
session required pam_loginuid.so
session required pam_limits.so
session required pam_unix.so try_first_pass
session optional pam_umask.so
session optional pam_systemd.so
session optional pam_env.so
session optional pam_lastlog.so silent noupdate showfailed
Apakah saya benar bahwa PAM menginformasikan sshd
tentang keberhasilan atau kegagalan di akhir setiap tumpukan? Jadi pertama auth
fasilitas diproses kemudian hasilnya dikembalikan ke sshd
, lalu account
fasilitas diproses dan hasil account
tumpukan dikembalikan ke sshd
, dll? Apakah PAM diinformasikan oleh daemon saat sesi terotentikasi berakhir?
Jawaban yang Diterima:
Dalam arti itulah yang terjadi, tetapi saya tidak akan mengatakannya seperti itu.
Karena PAM tidak menginformasikan sshd secara aktif, melainkan sshd meminta PAM melalui panggilan fungsi (seperti pam_authenticate
, pam_acct_mgmt
, dll.) dan bertindak sesuai dengan hasil. PAM juga tidak secara otomatis mengetahui, kapan suatu sesi ditutup, tetapi harus diinformasikan melalui pam_close_session
(karena sesi dapat ditutup dari aplikasi lain).
Anda dapat mencari kode sumber openssh untuk memahami di mana dan bagaimana sshd menggunakan PAM. Saya juga akan merekomendasikan Panduan Pengembang Aplikasi Linux-PAM jika Anda tertarik dengan detailnya.