AUTHSELECT-PROFILES(5)

NAME
authselect-profiles - hoe u authselect-profielen uitbreidt.

BESCHRIJVING

Deze pagina legt uit hoe authselect-profielen gestructureerd zijn en hoe u nieuwe profielen maakt.

MAPPEN MET PROFIELEN

Profielen kunnen gevonden worden in één van drie mappen.

"/usr/share/authselect/default"
    Alleen-lezen-map die profielen bevat die samen met authselect geleverd werden.

"/usr/share/authselect/vendor"
    Alleen-lezen-map voor leveranciersprofielen die de profielen in de standaardmap terzijde kunnen schuiven.

"/etc/authselect/custom"
    Plaats voor profielen die gedefinieerd werden door de beheerder.

PROFIELBESTANDEN

Elk profiel bestaat uit één of meer van deze bestanden die een verplichte profielbeschrijving bieden en de veranderingen beschrijven die in het systeem worden aangebracht.

LEES MIJ
    Beschrijving van het profiel. De eerste regel moet de naam van het profiel zijn.

system-auth
    PAM-stack die wordt toegevoegd aan bijna alle configuratiebestanden van diensten.

password-auth, smartcard-auth, fingerprint-auth
    Deze PAM-stacks zijn voor toepassingen die authenticatie vanaf verschillende typen van apparaten afhandelen via simultane individuele conversaties in plaats van een samengevoegde conversatie.

postlogin
    Het doel van deze PAM-stack is het bieden van een gemeenschappelijke plaats voor alle PAM-modules welke aangeroepen behoren te worden nadat de stack geconfigureerd werd met system-auth of de andere algemene PAM-configuratiebestanden. Hij wordt ingevoegd in alle configuratiebestanden voor de individuele diensten die een inlogdienst bieden voor toegang tot een shell of tot bestanden. OPMERKING: De modules in het postlogin-configuratiebestand worden uitgevoerd onafhankelijk van het succes of het mislukken van de modules in het system-auth-configuratiebestand.

nsswitch.conf
    Name Service Switch-configuratiebestand.

dconf-db
    Wijzigingen in de dconf-database. De belangrijkste toepassing van dit bestand is het instellen van wijzigingen van het GNOME inlogscherm voor het aan- of uitzetten van authenticatie met smartcard of vingerafdruk.

dconf-locks
    Dit bestand definieert vergrendelingen op waarden ingesteld in de dconf-database.

  VOORWAARDELIJKE REGELS

Elk van deze bestanden dient als een sjabloon. Een sjabloon is een gewoon tekstbestand met optioneel gebruik van verschillende operatoren om bijzondere profielfuncties te kunnen verkrijgen.

{continue if "feature"}
    Stop onmiddellijk met het verwerken van het bestand tenzij "feature" gedefinieerd is (de rest van de bestandsinhoud zal verwijderd worden). Als "feature" gedefinieerd is, zal de gehele regel met deze operator verwijderd worden en de rest van de sjabloon zal verwerkt worden.

{stop if "feature"}
    Tegengestelde van "continue if". Stop onmiddellijk het verwerken van het bestand als "feature" gedefinieerd is (de rest van de bestandsinhoud zal verwijderd worden). Als "feature" niet gedefinieerd is, zal de gehele regel met deze operator verwijderd worden en de rest van de sjabloon zal verwerkt worden.

{include if "feature"}
    Voeg de regel waarin deze operator voorkomt alleen in als "feature" gedefinieerd is.

{exclude if "feature"}
    Tegengestelde van "include-if". Voeg de regel waarin deze operator voorkomt alleen in als "feature" niet gedefinieerd is.

{imply "implied-feature" if "feature"}
    Zet functie "implied-feature" aan als functie "feature" aangezet is. De gehele regel met deze operator wordt verwijderd, dus is het niet mogelijk iets anders toe te voegen rond deze operator op dezelfde regel.

{if "feature":true|false}
    Als "feature" gedefinieerd is, vervang dan deze operator met de tekenreeks "true", en anders met de tekenreeks "false".

{if "feature":true}
    Als "feature" gedefinieerd is, vervang dan deze operator met de tekenreeks "true", en anders met een lege tekenreeks.

Het is ook mogelijk logische expressies in de voorwaardelijke regel te gebruiken in plaats van een enkele functie te noemen. In dit geval zal de expressie geëvalueerd worden tot true of false en de voorwaardelijke operator zal handelen naar de uitkomst.

De syntaxis van een expressie bestaat uit de namen van functies (bijv. "feature"), die true retourneren als de functie gedefinieerd is en in false als hij niet gedefinieerd is, en uit de volgende logische operatoren: and, or en not. De expressie mag tussen haakjes gezet worden en mag meerdere expressies bevatten.

Bijvoorbeeld:

{if "feature1" or "feature2":true}
    Als "feature1" or "feature2" gedefinieerd is, vervang deze operator door de tekenreeks "true", en anders door een lege tekenreeks.

{if not "feature":true|false}
    Als "feature" niet gedefinieerd is, vervang deze operator door de tekenreeks "true", en anders door de tekenreeks "false".

{if not "feature":true}
    Als "feature" niet gedefinieerd is, vervang deze operator dan door de tekenreeks "true", en anders met een lege tekenreeks.

{if "feature1" and ("feature2" or "feature3"):true}
    Als "feature1" gedefinieerd is, en tevens "feature2" of "feature3" gedefinieerd zijn, vervang dan deze operator door de tekenreeks "true", en anders door een lege tekenreeks.

  VOORBEELD

Hier is een voorbeeld van het gebruik van de operator "if". Als de functie "with-sudo" aangezet is, zal het "sss" torvoegen aan de sudoers-regel.

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

Hier is een voorbeeld van de operatoren "continue-if" en "include-if". Het resulterende bestand zal leeg zijn tenzij de functie "with-smartcard" aangezet is. Als het aangezet is en ook de functie "with-faillock" aangezet is, zal het ook ondersteuning voor pam_faillock aanzetten.

    {continue if "with-smartcard"}
    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
    ...

Hier is een voorbeeld van "continue-if" met gebruik van een logische expressie. Het bestand zal leeg zijn tenzij "with-smartcard" of "with-smartcard-required" ingesteld is. Dit zal de aanroep van authselect select vereenvoudigen omdat deze niet beide functies hoeft te bevatten, alleen "with-smartcard-required" is nodig.

    {continue if "with-smartcard" or "with-smartcard-required"}
    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
    ...

Hier is een voorbeeld van de operator "imply-if". Het aanzetten van de functie "with-smartcard-required" zal ook "with-smartcard" aanzetten om er zeker van te zijn dat alle relevante PAM modules gebruikt worden. Dit zal leiden tot hetzelfde gedrag als bij het vorige voorbeeld.

    {imply "with-smartcard" if "with-smartcard-required"}
    auth        required                                     pam_env.so
    auth        required                                     pam_faildelay.so delay=2000000
    auth        [success=1 default=ignore]                   pam_succeed_if.so service notin login:gdm:xdm:kdm:kde:xscreensaver:gnome-screensaver:kscreensaver quiet use_uid {include if "with-smartcard-required"}
    auth        [success=done ignore=ignore default=die]     pam_sss.so require_cert_auth ignore_authinfo_unavail             {include if "with-smartcard-required"}
    auth        [default=1 ignore=ignore success=ok]         pam_succeed_if.so uid >= 1000 quiet
    auth        [default=1 ignore=ignore success=ok]         pam_localuser.so                                                 {exclude if "with-smartcard"}
    auth        [default=2 ignore=ignore success=ok]         pam_localuser.so                                                 {include if "with-smartcard"}
    auth        [success=done authinfo_unavail=ignore user_unknown=ignore ignore=ignore default=die] pam_sss.so try_cert_auth {include if "with-smartcard"}
    auth        sufficient                                   pam_unix.so {if not "without-nullok":nullok}
    auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
    auth        sufficient                                   pam_sss.so forward_pass
    auth        required                                     pam_deny.so
    ...

EEN NIEUW PROFIEL AANMAKEN

Om binnen authselect een nieuw profiel te registreren, maakt u een map aan in een van de authselect-profiellocaties en vult u de map met de bestanden die hierboven genoemd werden. Niet alle bestanden hoeven aanwezig te zijn, alleen README is verplicht. Andere bestanden kunnen naar behoefte toegevoegd worden.

Misschien vindt u het commando authselect create-profile behulpzaam voor het aanmaken van een nieuw profiel. Raadpleeg de online handleiding met man authselect(8) of type authselect create-profile --help voor meer informatie.

ZIE OOK

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