AUTHSELECT\-PROFILES

Section: \ \& (5)
Updated: 2018-02-17
Page Index
 

NAME

authselect-profiles - jak rozšířit profily authselect.  

POPIS

Tato manuálová stránka vysvětluje organizaci profilů authselect a jak vytvářet nové profily.  

ADRESÁŘE PROFILŮ

Profily lze nalézt v jednom ze tří adresářů.

/usr/share/authselect/default

Adresář pouze pro čtení, který obsahuje profily poskytované společně s authselect.

/usr/share/authselect/vendor

Adresář pouze pro čtení pro profily, které jsou zvláště určené výrobcům a mohou potlačovat ty ve výchozím (též default) adresáři.

/etc/authselect/custom

Místo pro profily vytvořené počítačovými správci.
 

SOUBORY PROFILU

Každý profil se skládá z jednoho nebo více těchto souborů, které poskytují povinný popis profilu a popisují změny, které jsou provedeny v systému.

README

Popis profilu. Na prvním řádku se uvádí název profilu.

system-auth

PAM stack that is included from nearly all individual service configuration files.

password-auth, smartcard-auth, fingerprint-auth

Tyto stohy PAM jsou určené pro aplikace, které obsluhují autentizaci z různých druhů zařízení prostřednictvím souběžného vedení jednotlivých konverzací, nikoliv jedné hromadné konverzace.

postlogin

The purpose of this PAM stack is to provide a common place for all PAM modules which should be called after the stack configured in system-auth or the other common PAM configuration files. It is included from all individual service configuration files that provide login service with shell or file access. NOTE: the modules in the postlogin configuration file are executed regardless of the success or failure of the modules in the system-auth configuration file.

nsswitch.conf

Name Service Switch configuration file. Only maps relevant to the profile must be set. Maps that are not specified by the profile are included from /etc/authselect/user-nsswitch.conf.

dconf-db

Změny v databázi dconf. Hlavním příkladem použití tohoto souboru je nastavit změny u přihlašovací obrazovky gnome tak, aby bylo možné povolit či zakázat autentizaci přes čipovou kartu nebo otisk prstu.

dconf-locks

Tento soubor nastavuje zámek u hodnot nastavených v databázi dconf.
 

PODMÍNĚNÉ ŘÁDKY

Každý z těchto souborů slouží jako šablona. Šablona je soubor prostého textu s volitelným použitím několika operátorů, které lze použít k vytvoření některých volitelných vlastností profilu.

{continue if "feature"}

Ihned zastavit zpracování souboru, pokud není určena "vlastnost" (zbývající obsah souboru bude vynechán). Je-li vlastnost určena, celý řádek s tímto operátorem bude vynechán a zbytek šablony naopak zpracován.

{stop if "feature"}

Opak "continue if". Ihned zastavit zpracování souboru, pokud je určena "vlastnost" (zbývají obsah souboru bude vynechán). Není-li vlastnost určena, celý řádek s tímto operátorem bude vynechán a zbytek šablony naopak zpracován.

{include if "feature"}

Vložit řádek s tímto operátorem jen, pokud je "vlastnost" určena.

{exclude if "feature"}

Opak "include-if". Vložit řádek s tímto operátorem jen, pokud "vlastnost" není určena.

{imply "implied-feature" if "feature"}

Povolit vlastnost "implicitní-vlastnost", pokud vlastnost "vlastnost" je povolena. Celý řádek s tímto operátorem bude vynechá, proto není možné k tomuto operátoru přidat nic dalšího na tom samém řádku.

{if "feature":true|false}

Je-li "vlastnost" určena, nahraď tento operátor řetězcem "pravda", jinak řetězcem "nepravda".

{if "feature":true}

Je-li "vlastnost" určena, nahraď tento operátor řetězcem "pravda", jinak prázdným řetězcem.

Je též možné v podmíněných řádcích používat logické výrazy namísto uvádění jednotlivých názvů vlastností. V tomto případě se výraz vyhodnotí jako pravda či nepravda a podmínkový operátor tak bude jednat dle výsledku.

Syntaxe výrazu se skládá z názvů vlastností (např. "vlastnost"), která vrací pravda, když je vlastnost určena, nebo nepravda, když určena není, a těchto logických operátorů: and, or a not. Výraz lze rovněž uzavřít do závorek a mít tak více podvýrazů.

Na příklad:

{if "feature1" or "feature2":true}

Jsou-li "vlastnost1" a "vlastnost2" určeny, nahraď tento operátor řetězcem "pravda", jinak prázdným řetězcem.

{if not "feature":true|false}

Není-li "vlastnost" určena, nahraď tento operátor řetězcem "pravda", jinak řetězcem "nepravda".

{if not "feature":true}

Není-li "vlastnost" určena, nahraď tento operátor řetězcem "pravda", jinak prázdným řetězcem.

{if "feature1" and ("feature2" or "feature3"):true}

Je-li "vlastnost1" určena a jedna z vlastností "vlastnost2 a "vlastnost3" také, nahraď tento operátor řetězcem "pravda", jinak prázdným řetězcem.
 

PŘÍKLAD

Zde máte příklad použití operátoru "if". Je-li vlastnost "with-sudo" povolena, přidá "sss" to řádku sudoers.

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

Zde je příklad s operátory "continue-if" a "include-if". Výsledný soubor bude prázdný, pokud není povolena vlastnost "with-smartcard". Je-li tato vlastnost povolena a rovněž povolena vlastnost "with-faillock", povolí rovněž podporu pro pam_faillock.

{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 try_first_pass
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
...

Zde je příklad "continue=if" s logickým výrazem. Výsledný soubor bude prázdný, pokud není nastavena "with-smartcard" nebo "with-smartcard-required". Zjednoduší to volání příkazu authselect select, který nemusí vkládat obě vlastnosti, neboť nezbytná je pouze "with-smartcard-required".

{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]         paleam_succeed_if.so uid >= 1000 quiet
auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
auth        sufficient                                   pam_unix.so nullok try_first_pass
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
...

Zde je příklad s operátorem "imply-if". Povolení vlastnosti "with-smartcard-required" povolí rovněž "with-smart-card", aby se zajistilo, že budou použity všechny odpovídající moduly PAM. Tímto se dosáhne stejného chování, jako v předchozím příkladu.

{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: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 ignore=ignore default=die] pam_sss.so try_cert_auth           {include if "with-smartcard"}
auth        sufficient                                   pam_unix.so {if not "without-nullok":nullok} try_first_pass
auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient                                   pam_sss.so forward_pass
auth        required                                     pam_deny.so
...
 

TVORBA NOVÉHO PROFILU

Chcete-li zaznamenat nový profil v rámci authselect, vytvořte adresář se výše uvedenými soubory v jednom z umístění profilů authselect. Ne všechny soubory se musí v adresáři nacházet, povinný je pouze "README". Ostatní soubory lze vytvořit dle potřeby.

Při vytváření nového profilu vám může pomoci příkaz authselect create-profile. Více informací viz manuálová stránka authselect(8) nebo authselect create-profile --help.  

VIZ TÉŽ

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


 

Index

NAME
POPIS
ADRESÁŘE PROFILŮ
SOUBORY PROFILU
PODMÍNĚNÉ ŘÁDKY
PŘÍKLAD
TVORBA NOVÉHO PROFILU
VIZ TÉŽ