AUTHSELECT-PROFILES(5)

NAME
authselect-profiles - authselect プロファイルを拡張する方法.

説明

この man ページでは、authselect プロファイルの構築方法および新規プロファイルの作成方法について説明します。

プロファイルディレクトリー

プロファイルは、3 つのディレクトリーのうちの 1 つで見つけることができます。

/usr/share/authselect/default
    authselect と共に出荷されたプロファイルを含む読み込み専用のディレクトリー。

/usr/share/authselect/vendor
    default directory のプロファイルをオーバーライドできるベンダー固有のプロファイルの読み込み専用ディレクトリー。

/etc/authselect/custom
    管理者定義のプロファイルの場所.

プロファイルファイル

各プロファイルは、1 つ以上のこれらのファイルで構成されます。これらのファイルは、必須プロファイルの説明をし、システムに対する変更を説明します。

README
    プロファイルの説明。最初の行はプロファイル名でなければなりません。

system-auth
    ほぼすべての個別のサービス設定ファイルからインクルードされた PAM スタック。

password-auth、smartcard-auth、fingerprint-auth
    これらの PAM スタックは、1 つの集合的な会話ではなく個々の会話を同時に実行して、異なるタイプのデバイスの認証を扱うアプリケーション向けです。

postlogin
    この PAM スタックの目的は、system-auth またはその他の共通の PAM 設定ファイルでスタックが設定された後に、呼び込まれるすべての PAM モジュールに共通の場所を提供することです。これは、シェルまたはファイルアクセスでログインサービスを提供するすべての個別のサービス設定ファイルからインクルードされます。 注意: postlogin 設定ファイルのモジュールは、system-auth 設定ファイルのモジュールの成功または失敗に関係なく実行されます。

nsswitch.conf
    Name Service Switch 設定ファイル。プロファイルと関係のあるマップのみが設定される必要があります。プロファイルによって指定されないマップは、/etc/authselect/user-nsswitch.conf からインクルードされます。

dconf-db
    dconf データベースへの変更。このファイルの主なユースケースは、スマートカードや指紋による認証を有効または無効にするために gnome ログイン画面に変更を設定することです。

dconf-locks
    このファイルは、dconf データベースに設定された値のロックを定義します。

  条件付きの行

これらの各ファイルは、テンプレートとして機能します。テンプレートとは、いくつかのオプションのプロファイル機能を提供するために使用できる複数のオペレーターをオプションで使用するプレーンテキストファイルです。

{continue if "feature"}
    "feature" が定義されない限り、ファイルの処理を即時停止します (残りのファイルコンテンツは削除されます)。"feature" が定義されている場合、このオペレーターのある行はすべて削除され、残りのテンプレートは処理されます。

{stop if "feature"}
    "continue if" の反対。"feature" が定義されている場合、ファイルの処理を即時停止します (残りのファイルコンテンツは削除されます)。"feature" が定義されていない場合、このオペレーターのある行はすべて削除され、残りのテンプレートは処理されます。

{include if "feature"}
    "feature" が定義されている場合のみ、このオペレーターが置かれている行を含めます。

{exclude if "feature"}
    "include-if" の反対。"feature" が定義されていない場合のみ、このオペレーターが置かれている行を含めます。

{imply "implied-feature" if "feature"}
    "feature" 機能が有効になると、"implied-feature" が有効になります。このオペレーターのある行全体が削除されるため、このオペレーターに何かを同時に追加することはできません。

{if "feature":true|false}
    "feature" が定義されている場合、このオペレーターを文字列 "true" と置き換えます。定義されていない場合は、文字列 "false" と置き換えます。

{if "feature":true}
    "false" が定義されている場合、このオペレーターを文字列 "true" と置き換えます。定義されていない場合は、空の文字列と置き換えます。

また、単一の機能名を指定せずに、条件付きの行に論理式を使用することも可能です。この場合、この式は真または偽を評価し、条件演算子が結果に従って動作します。

式の構文は、機能が定義されていると true を返し、機能が定義されておらず、and、or、not の論理演算子のものでなければ、false を返す機能名 (例 "feature") から成ります。この式は、括弧で閉じられ、複数のサブ式を含むことがあります。

例:

{if "feature1" or "feature2":true}
    "feature1"または "feature2" が定義されると、この演算子が文字列 "true" で置き換えられます。定義されていない場合は、空の文字列で置き換えられます。

{if not "feature":true|false}
    "feature" が定義されていない場合、このオペレーターを文字列 "true" と置き換えます。定義されていない場合は、文字列 "false" と置き換えます。

{if not "feature":true}
    "feature" が定義されていない場合、このオペレーターを文字列 "true" と置き換えます。定義されていない場合は、空の文字列と置き換えます。

{if "feature1" and ("feature2" or "feature3"):true}
    "feature1" が定義され、"feature2" と "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)