table of contents
        
      
      
    | AUTHSELECT-PROFILES(5) | AUTHSELECT-PROFILES(5) | 
NAME¶
authselect-profiles - authselect プロファイルを拡張する方法.
説明¶
この man ページでは、authselect プロファイルの構築方法および新規プロファイルの作成方法について説明します。
プロファイルディレクトリー¶
プロファイルは、3 つのディレクトリーのうちの 1 つで見つけることができます。
/usr/share/authselect/default
/usr/share/authselect/vendor
/etc/authselect/custom
プロファイルファイル¶
各プロファイルは、1 つ以上のこれらのファイルで構成されます。これらのファイルは、必須プロファイルの説明をし、システムに対する変更を説明します。
README
system-auth
password-auth、smartcard-auth、fingerprint-auth
postlogin
nsswitch.conf
dconf-db
dconf-locks
条件付きの行¶
これらの各ファイルは、テンプレートとして機能します。テンプレートとは、いくつかのオプションのプロファイル機能を提供するために使用できる複数のオペレーターをオプションで使用するプレーンテキストファイルです。
{continue if "feature"}
{stop if "feature"}
{include if "feature"}
{exclude if "feature"}
{imply "implied-feature" if "feature"}
{if "feature":true|false}
{if "feature":true}
また、単一の機能名を指定せずに、条件付きの行に論理式を使用することも可能です。この場合、この式は真または偽を評価し、条件演算子が結果に従って動作します。
式の構文は、機能が定義されていると true を返し、機能が定義されておらず、and、or、not の論理演算子のものでなければ、false を返す機能名 (例 "feature") から成ります。この式は、括弧で閉じられ、複数のサブ式を含むことがあります。
例:
{if "feature1" or "feature2":true}
{if not "feature":true|false}
{if not "feature":true}
{if "feature1" and ("feature2" or "feature3"):true}
例 ~ これは "if" オペレーターを使用した例です。"with-sudo" 機能が有効になると、sudoers の行に "sss" を追加します。
passwd:     sss files
group:      sss files
netgroup:   sss files
automount:  sss files
services:   sss files
sudoers:    files {if "with-sudo":sss}
これは "continue-if" オペレーターおよび "include-if" オペレーターの例です。結果として得られるファイルは、"with-smartcard" 機能が有効にならない限り、空になります。これが有効になり、"with-faillock" 機能も有効になった場合、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
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
...
これは、論理式を使用した "continue-if" の例です。このファイルは、"with-smartcard" または "with-smartcard-required" を設定しない限り空になります。これにより、authselect select コマンドの読み出しが簡素化されます。"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]         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
...
これは、"imply-if" 演算子の例です。"with-smartcard-required" 機能を有効化すると、すべての関連の PAM モジュールが使用されるようにするために "with-smartcard" が有効になります。これにより、以前の例と同じ動作が確立されます。
{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
...
新規プロファイルの作成¶
authselect 内で新規のプロファイルを登録するには、上記に一覧表示したファイルを使用して authselect プロファイルロケーションの 1 つにディレクトリーを作成します。すべてのファイルが必要なわけではありません。README のみが必須です。他のファイルは必要に応じて作成することができます。
新しいプロファイルを作成する際には authselect create-profile が役立つことがあります。詳細は、authselect(8) マニュアルページまたは authselect create-profile --help を参照してください。
以下も参照してください¶
authselect(8)、nsswitch.conf(5)、PAM(8)
| 2018-02-17 |