Saya sedang mempelajari PAM, dan saya sedikit tidak mengerti tentang arti dari beberapa kombinasi flag kontrol. Dari dokumentasi Red Hat kami memiliki:
diperlukan
kegagalan PAM semacam itu pada akhirnya akan menyebabkan kegagalan pengembalian PAM-API
tetapi hanya setelah modul tumpuk yang tersisa (untuk layanan dan jenis ini)
dipanggilRequirement
seperti yang dibutuhkan, namun, jika modul tersebut mengembalikan kegagalan,
kontrol langsung dikembalikan ke aplikasi.cukup
keberhasilan modul tersebut cukup untuk memenuhi persyaratan autentikasi
tumpukan modul (jika modul yang diperlukan sebelumnya gagal
keberhasilan modul ini diabaikan). Kegagalan modul ini tidak dianggap
fatal untuk memuaskan aplikasi yang jenis ini telah berhasil. Jika modul
berhasil, kerangka kerja PAM mengembalikan kesuksesan ke aplikasi
segera tanpa mencoba modul lain.
Jadi, menurut pemahaman saya, jika modul requisite
gagal, seluruh tumpukan modul tidak akan diurai, dan kontrol akan segera kembali ke aplikasi.
Jika modul sufficient
berhasil, tumpukan modul lainnya tidak akan diuraikan dan kontrol akan segera kembali ke aplikasi.
Jika modul required
gagal, seluruh tumpukan akan diuraikan.
Sekarang, saya tidak dapat memahami apa yang akan menjadi perilaku ketika modul tertentu required
gagal dan modul lain sufficient
berhasil.
Jawaban yang Diterima:
PAM melanjutkan melalui item di tumpukan secara berurutan. Itu hanya menyimpan ingatan tentang statusnya (sukses atau ditolak, dengan sukses berarti sukses sejauh ini), bukan tentang bagaimana ia mencapai status itu.
Jika item bertanda sufficient
berhasil, perpustakaan PAM berhenti memproses tumpukan itu. Ini terjadi apakah ada required
sebelumnya item atau tidak. Pada titik ini, PAM mengembalikan status saat ini:sukses jika tidak ada required
sebelumnya item gagal, jika tidak ditolak.
Demikian pula, jika item bertanda requisite
gagal, pustaka PAM berhenti memproses dan mengembalikan kegagalan. Pada saat itu, tidak relevan apakah required
sebelumnya item gagal.
Dengan kata lain, required
tidak selalu menyebabkan seluruh tumpukan diproses. Itu hanya berarti terus berjalan.