PROFILI DI AUTHSELEC(5)

NAME
authselect-profiles - come estendere i profili delle autentiche.

DESCRIZIONE

Questa pagina manuale spiega come sono organizzati i profili delle autentiche e come creare nuovi profili.

DIRECTORY DEL PROFILO

I profili possono essere trovati in una delle tre directory.

    Directory di sola lettura contenente profili spediti insieme ad Authelect.

"/usr/share/authselect/vendor"
    Directory di sola lettura per profili specifici del fornitore che possono sovrascrivere quelli nella directory default.

    Luogo per profili definiti dall’amministratore.

FILES DI PROFILO

Ogni profilo è costituito da uno o più di questi file che forniscono una descrizione obbligatoria del profilo e descrivono le modifiche apportate al sistema.

LEGGIMI
    Descrizione del profilo. La prima riga deve essere un nome del profilo.

autenticazione-sistema
    PAM stack incluso da quasi tutti i singoli file di configurazione del servizio.

autenticazione-password, autenticazione-smartcard, autenticazione-impronta-digitale
    Questi stack PAM sono per applicazioni che gestiscono l’autenticazione da diversi tipi di dispositivi tramite contemporaneamente conversazioni individuali anziché una conversazione aggregata.

postaccesso
    Lo scopo di questo stack PAM è quello di fornire un luogo comune per tutti i moduli PAM che dovrebbero essere chiamati dopo lo stack configurato in System-Auth o negli altri file di configurazione PAM comuni. È incluso da tutti i singoli file di configurazione del servizio che forniscono un servizio di accesso con Shell o File Access. Note: i moduli nel file di configurazione postlogin vengono eseguiti indipendentemente dal successo o dal fallimento dei moduli nel file di configurazione System-Auth.

nsswitch.conf
    File di configurazione del Name Service Switch.

dconf-db
    Modifiche al database DCONF. Il caso principale utilizza di questo file è impostare le modifiche per la schermata di accesso GNOME al fine di abilitare o disabilitare l’autenticazione SmartCard e delle impronte digitali.

dconf-locks
    Questo file definisce i blocchi sui valori impostati nel database dconf.

  LINEE CONDIZIONATE

Ognuno di questi file funge da modello. Un modello è un file di testo semplice con un utilizzo opzionale di diversi operatori che possono essere utilizzati per fornire alcune funzionalità del profilo opzionali.

{continua se "feature"}
    Interrompere immediatamente l’elaborazione del file a meno che non sia definita "funzione" (il resto del contenuto del file verrà rimosso). Se è definita la "funzione", l’intera linea con questo operatore verrà rimossa e il resto del modello verrà elaborato.

{stop se "feature"}
    Di fronte a "continua se". Interrompere immediatamente l’elaborazione del file se viene definita "funzione" (il resto del contenuto del file verrà rimosso). Se la "funzione" non è definita, l’intera linea con questo operatore verrà rimossa e il resto del modello verrà elaborato.

{include if "feature"}
    Includi la linea in cui questo operatore è posizionato solo se è definita "funzione".

{exclude if "feature"}
    Di fronte a "Include-if". Includi la linea in cui questo operatore è posizionato solo se la "funzione" non è definita.

{implica "implied-feature" se "feature"}
    Abilita la funzionalità "implied-feature" se la funzionalità "feature" è abilitata. L’intera riga con questo operatore viene rimossa, quindi non è possibile aggiungere altro attorno a questo operatore sulla stessa riga.

{se "feature":true|false}
    Se è definito "feature", sostituire questo operatore con la stringa "true", altrimenti con la stringa "false".

{se "feature":true}
    Se è definita "funzione", sostituire questo operatore con stringa "true", altrimenti con una stringa vuota.

È anche possibile utilizzare l’espressione logica nella linea condizionale invece di specificare il nome di singola funzionalità. In questo caso l’espressione valuterà al vero o falso e l’operatore condizionale agirà al risultato.

La sintassi dell’espressione è costituita da nomi di funzionalità (ad esempio _ "funzione" ) che restituisce _true se la funzione è definita o false se non è definita e dai seguenti operatori logici: and, or e not. L’espressione può anche essere racchiusa tra parentesi e contenere più sottoespressioni.

Per esempio:

{se "feature1" o "feature2":true}
    Se è definito "feature1" o "feature2", sostituire questo operatore con stringa "true", altrimenti con una stringa vuota.

{se non "feature":true|false}
    Se "feature" non è definito, sostituire questo operatore con la stringa "true", altrimenti con la stringa "false".

{se non "feature":true}
    Se "feature" non è definito, sostituire questo operatore con la stringa "true", altrimenti con una stringa vuota.

{if "feature1" and ("feature2" or "feature3"):true}
    Se è definito "feature1" e uno tra "feature2" e "feature3" è definito, sostituire questo operatore con la stringa "true", altrimenti con una stringa vuota.

  ESEMPIO

Ecco un esempio di utilizzo dell’operatore "if". Se la funzione "with-sudo" è abilitata, verrà aggiunto "sss" alla riga "sudoers".

    passwd:     sss files
    group:      sss files
    netgroup:   sss files
    automount:  sss files
    services:   sss files
    sudoers:    files {if "with-sudo":sss}

Ecco un esempio di utilizzo dell’operatore "if". Se la funzione "with-sudo" è abilitata, verrà aggiunto "sss" alla riga "sudoers".

    {continua se "con-smartcard"}
    autenticazione richiesta pam_env.so
    autenticazione richiesta pam_faildelay.so ritardo=2000000
    auth obbligatorio pam_faillock.so preauth silent aware=4 sblocca_time=1200 {include if "with-faillock"}
    auth [default=1 ignore=ignora success=ok] pam_succeed_if.so uid >= 1000 quiet
    auth [default=1 ignore=ignora success=ok] pam_localuser.so
    autenticazione sufficiente pam_unix.so nullok
    requisito di autenticazione pam_succeed_if.so uid >= 1000 quiet_success
    autenticazione sufficiente pam_sss.so forward_pass
    auth richiesto pam_faillock.so authfail Denis=4 sblocca_time=1200 {include if "with-faillock"}
    autenticazione richiesta pam_deny.so
    ...

    auth        required                                     pam_env.so
    auth        required                                     pam_faildelay.so delay=2000000
    auth        required                                     pam_faillock.so preauth silent deny=4 unlock_time=1200 {include if "with-faillock"}
    auth        [default=1 ignore=ignore success=ok]         pam_succeed_if.so uid >= 1000 quiet
    auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
    auth        sufficient                                   pam_unix.so nullok
    auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
    auth        sufficient                                   pam_sss.so forward_pass
    auth        required                                     pam_faillock.so authfail deny=4 unlock_time=1200       {include if "with-faillock"}
    auth        required                                     pam_deny.so
    ...

Ecco un esempio di "continue-if" che utilizza un’espressione logica. Il file sarà vuoto a meno che non venga impostato "with-smartcard" o "with-smartcard-required". Questo semplificherà la chiamata del comando authselect select, che non deve includere entrambe le funzionalità, ma è necessario solo "with-smartcard-required".

    {continua se "con-smartcard" o "con-smartcard-obbligatorio"}
    auth        required                                     pam_env.so
    auth        required                                     pam_faildelay.so delay=2000000
    auth        required                                     pam_faillock.so preauth silent deny=4 unlock_time=1200 {includi se "con-faillock"}
    auth        [default=1 ignore=ignore success=ok]         pam_succeed_if.so uid >= 1000 quiet
    auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
    auth        sufficient                                   pam_unix.so nullok
    auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
    auth        sufficient                                   pam_sss.so forward_pass
    auth        required                                     pam_faillock.so authfail deny=4 unlock_time=1200       {includi se "con-faillock"}
    auth        required                                     pam_deny.so
    ...

Ecco un esempio dell’operatore "imply-if". Abilitando la funzionalità "with-smartcard-required" verrà abilitata anche "with-smartcard" per garantire che vengano utilizzati tutti i moduli PAM pertinenti. Questo otterrà lo stesso comportamento dell’esempio precedente.

    {implica "con-smartcard" se "con-smartcard-obbligatorio"}
    auth        required                                     pam_env.so
    auth        required                                     pam_faildelay.so delay=2000000
    auth        [success=1 default=ignore]                   pam_succeed_if.so service non in login:gdm:xdm:kdm:kde:xscreensaver:gnome-screensaver:kscreensaver quiet use_uid {includi se "con-smartcard-obbligatorio"}
    auth        [success=done ignore=ignore default=die]     pam_sss.so require_cert_auth ignore_authinfo_unavail             {includi se "con-smartcard-obbligatorio"}
    auth        [default=1 ignore=ignore success=ok]         pam_succeed_if.so uid >= 1000 quiet
    auth        [default=1 ignore=ignore success=ok]         pam_localuser.so                                                 {escludi se "con-smartcard"}
    auth        [default=2 ignore=ignore success=ok]         pam_localuser.so                                                 {includi se "con-smartcard"}
    auth        [success=done authinfo_unavail=ignore user_unknown=ignore ignore=ignore default=die] pam_sss.so try_cert_auth {includi se "con-smartcard"}
    auth        sufficient                                   pam_unix.so {se non "senza-nullok":nullok}
    auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
    auth        sufficient                                   pam_sss.so forward_pass
    auth        required                                     pam_deny.so
    ...

CREAZIONE DI UN NUOVO PROFILO

Per registrare un nuovo profilo in authselect, creare una directory in una delle posizioni dei profili di authselect con i file elencati sopra. Non tutti i file devono essere presenti, solo README è obbligatorio. Altri file possono essere creati in base alle esigenze.

Il comando authselect create-profile potrebbe essere utile per creare un nuovo profilo. Consulta la pagina del manuale authselect(8) o authselect create-profile --help per ulteriori informazioni.

VEDI ANCHE

authselect(8), nsswitch.conf(5), PAM(8)