GNU/Linux >> Linux Esercitazione >  >> Linux

Pam – Bandiera di controllo richiesta e sufficiente?

Sto studiando PAM e sono un po' all'oscuro del significato di una combinazione di flag di controllo. Dalla documentazione di Red Hat abbiamo:

  • l'errore richiesto
    di tale PAM comporterà alla fine l'errore PAM-API
    ma solo dopo che i moduli impilati rimanenti (per questo servizio e tipo)
    sono stati richiamati

  • requisito
    come richiesto, tuttavia, nel caso in cui tale modulo restituisca un errore,
    il controllo viene restituito direttamente all'applicazione.

  • sufficiente
    successo di tale modulo è sufficiente per soddisfare i requisiti di autenticazione
    dello stack di moduli (se un modulo richiesto precedente ha fallito
    il successo di questo viene ignorato). Un errore di questo modulo non è considerato
    fatale per soddisfare l'applicazione che questo tipo ha avuto successo. Se il modulo
    riesce, il framework PAM restituisce il successo all'applicazione
    immediatamente senza provare altri moduli.

Quindi, a mio avviso, se un modulo requisite non riesce, l'intero stack di moduli non verrà analizzato e il controllo tornerà immediatamente all'applicazione.
Se un modulo sufficient riesce, il resto dello stack dei moduli non verrà analizzato e il controllo tornerà immediatamente all'applicazione.
Se un modulo required non riesce, l'intero stack verrà analizzato.

Ora, non riesco a capire quale sarà il comportamento quando un determinato modulo required fallisce e un altro modulo sufficient riesce.

Risposta accettata:

PAM procede attraverso gli elementi sullo stack in sequenza. Mantiene solo la memoria dello stato in cui si trova (successo o negato, con successo che significa successo finora), non di come ha raggiunto quello stato.

Se un articolo contrassegnato come sufficient riesce, la libreria PAM interrompe l'elaborazione di quello stack. Questo accade se c'erano precedenti required oggetti o meno. A questo punto, PAM restituisce lo stato corrente:success se nessun precedente required elemento non riuscito, altrimenti negato.

Allo stesso modo, se un elemento contrassegnato requisite non riesce, la libreria PAM interrompe l'elaborazione e restituisce un errore. A quel punto, è irrilevante se un precedente required elemento non riuscito.

In altre parole, required non causa necessariamente l'elaborazione dell'intero stack. Significa solo andare avanti.

Correlati:controllo fotogramma per fotogramma di un video di YouTube?
Linux
  1. Utilizzare Setxkbmap per scambiare lo spostamento sinistro e il controllo sinistro?

  2. La differenza tra Nss e Pam?

  3. Relazioni tra caratteri di controllo, segnali e terminale?

  4. Qual è la differenza tra insmod e modprobe

  5. modifiche ai parametri del modulo del kernel (usando /sys/module)

Bash-it - Bash Framework per controllare i tuoi script e alias

Come caricare e scaricare i moduli del kernel in Linux

CPU Power Manager:controlla e gestisci la frequenza della CPU in Linux

Controlla l'utilizzo di RAM e CPU da parte di Kodi in tempo reale

Come avere il modulo Pam di backup?

kvm:verifica del modulo non riuscita:firma e/o chiave richiesta mancanti - kernel contaminato