PAM - gerekli ve yeterli kontrol bayrağı


14

PAM okuyorum ve kontrol bayraklarının bir kombinasyonunun anlamı hakkında biraz bilgim yok. Red Hat belgelerinde:


  • bu tür bir PAM'ın gerekli arızası, sonuçta PAM-API geri dönüş hatasına neden olur, ancak yalnızca kalan yığınlanmış modüller (bu hizmet ve tür için) çağrıldıktan sonra

  • ihtiyacı yadsınamaz
    Ancak, bu tür bir modül bir hata verir, bu durumda, kontrol ile doğrudan uygulamaya döner gerekli benzeri yer alır.


  • Böyle bir modülün yeterli başarısı, modül yığınının kimlik doğrulama gereksinimlerini karşılamak için yeterlidir (önceden gerekli bir modül başarısız olursa, bu modülün başarısı göz ardı edilir). Bu modülün başarısız olması, bu türden başarılı olan uygulamayı tatmin etmek için ölümcül sayılmaz. Modül başarılı olursa, PAM çerçevesi başka bir modül denemeden hemen uygulamaya geri döner.

Bu yüzden, benim görüşüme göre, bir modül requisitebaşarısız olursa, tüm modül yığını ayrıştırılmaz ve kontrol hemen uygulamaya geri döner. Bir modül sufficientbaşarılı olursa , diğer modül yığını ayrıştırılmaz ve kontrol hemen uygulamaya geri döner. Bir modül requiredarızalanırsa, tüm yığın ayrıştırılır.

Şimdi, belirli bir modül requiredbaşarısız olduğunda ve başka bir modül sufficientbaşarılı olduğunda davranışın ne olacağını anlayamıyorum .

Yanıtlar:


11

PAM, destedeki öğeler arasında sırayla ilerler. Bu duruma nasıl ulaştığının değil, sadece içinde bulunduğu durumun hafızasını tutar (başarı veya reddedilmiş, şimdiye kadar başarı anlamına gelir).

İşaretli bir öğe sufficientbaşarılı olursa , PAM kitaplığı bu yığını işlemeyi durdurur. Bu, önceki requiredöğeler olsun veya olmasın olur. Bu noktada, PAM geçerli durumu döndürür: önceki requiredöğe başarısız olursa başarı , aksi takdirde reddedilir.

Benzer şekilde, işaretli bir öğe requisitebaşarısız olursa, PAM kitaplığı işlemeyi durdurur ve bir hata döndürür. Bu noktada, önceki bir requiredöğenin başarısız olup olmaması önemsizdir .

Başka bir deyişle, requiredtüm yığının işlenmesine neden olmak zorunda değildir. Sadece devam etmek demektir.


Ancak herhangi bir requiredöğe başarısız olursa neden PAMyığının içinden geçmeye devam etmelisiniz? sonunda başarısız olursa?
Mohammed Noureldin

1
@MohammedNoureldin Bir giriş denemesi başarısız olsa bile, günlüğe kaydetme, kaba kuvvet girişimlerine karşı zaman aşımı ekleme vb. Gibi bazı şeyler yapılmalıdır. Ayrıca genellikle sistem arızanın kesin nedenini, örneğin kullanıcı adı başarısız olursa kullanıcıdan hala şifre istenir.
Gilles 'SO- kötü olmayı bırak'

Sıra, yapılandırmada listelendikleri sıradır?
OrangeDog

@OrangeDog Evet. İlk satırda listelenen modül yürütülür, daha sonra ikinci satır yürütülür (veya ilk satırın sonucuna bağlı olarak atlanır), vb.
Gilles 'SO- kötü olmayı bırak'

1

Bence, requiredbir modülün başarılı olabilmesi için bir kontrol işaretinin her zaman başarılı olması gerekir.

Bir sufficientbaşarısız olursa, işaretlenen modül yok sayılır. Başarılı olursa ve requiredyukarıdaki işaretli modüllerden herhangi biri başarısız olursa, aynı türden başka modüllerin kontrol edilmesi gerekmez ve modül başarılı olarak kabul edilir. Temel olarak, requiredbayrak bayrağa göre daha yüksek önceliğe sahiptir, sufficientancak ikincisi requiredöncekilerin başarılı olması durumunda geri kalanını kontrol etmeyi bırakabilir.

Misal:

1 auth       required     /lib/security/pam_nologin.so
2 auth       required     /lib/security/pam_securetty.so
3 auth       required     /lib/security/pam_env.so
4 auth       sufficient   /lib/security/pam_rhosts_auth.so
5 auth       required     /lib/security/pam_stack.so service=system-auth

1, 2, 3 ve 4 satırları başarılı olursa, satır 5 atlanabilir ve modül authbaşarılı olabilir. 4. hat başarılı olmazsa, yok sayılır ve 5. hat kontrol edilir. 1, 2, 3 satırlarından herhangi biri başarısız olursa, satır 4 dikkate alınmaz.


1
Bence sorusu 1 başarısız olursa ve 2-4 başarılı olursa ne olur. 5 koşuyor mu? 1 başarılı olsaydı, 5 çalıştırılmazdı. Başka bir deyişle, daha önce gerekli bir modül başarısız olursa "yeterli başarılı olduktan sonra dur" geçerli mi?
cjm

Hayır, kimlik doğrulama modülü bu tür bir kombinasyonla başarısız olur.
dsmsk80

Soru, yetkilendirmenin başarısız olup olmayacağı değildir. Olacak. Soru modül 5'in bu arıza uygulamaya bildirilmeden önce çalışıp çalışmayacağıdır.
cjm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.