AUTHSELECT-PROFILES(5)

NAME
authselect-profiles - опис можливостей розширення профілів authselect.

ОПИС

На цій сторінці підручника наведено пояснення щодо того, як організовано профілі authselect, та того, як створювати профілі.

КАТАЛОГИ ПРОФІЛІВ

Профілі зберігаються у одному з трьох каталогів.

"/usr/share/authselect/default"
    Призначений лише для читання даних каталог, у якому містяться профілі, які постачаються разом із authselect.

"/usr/share/authselect/vendor"
    Призначений лише для читання каталог для специфічних для постачальників операційної системи профілів, які можуть перевизначати профілі у типовому каталозі.

"/etc/authselect/custom"
    Місце для визначених адміністратором профілів.

ФАЙЛИ ПРОФІЛІВ

Кожен профіль складається з одного або декількох таких файлів, які містять обов’язковий опис профілю та описує зміни, які вносяться до системи.

README
    Опис профілю. Перший рядок має містити назву профілю.

system-auth
    Стос PAM, який включається з майже усіх окремих файлів налаштувань служб.

password-auth, smartcard-auth, fingerprint-auth
    Ці стоси PAM призначено для програм, які обробляють розпізнавання з пристроїв різних типів за допомогою одночасного виконання окремих потоків обміну даних, а не одного сукупного потоку обміну даними.

postlogin
    Призначенням цього стосу PAM є надання загального місця для усіх модулів PAM, які має бути викликано після налаштовування стосу у system-auth або інших загальних файлах налаштувань PAM. Він включається з усіх окремих файлів налаштувань служб, які надають можливості служби входу до системи за допомогою командної оболонки або доступу до файлів. ЗАУВАЖЕННЯ: модулі у файлі налаштувань postlogin виконуються незалежно від успіху або неуспіху під час обробки модулів у файлі налаштувань system-auth.

nsswitch.conf
    Файл налаштувань перемикача служб назв (NSS).

dconf-db
    Зміни до бази даних dconf. Основним призначенням цього файла є зберігання набору змін для вікна входу до gnome з метою вмикання або вимикання розпізнавання за смарт-карткою або відбитком.

dconf-locks
    У цьому файлі визначаються блокування значень, встановлених у базі даних dconf.

  РЯДКИ З УМОВАМИ

Кожен з цих файлів слугує як шаблон. Шаблон є простим текстовим файлом із необов’язковим використанням декількох операторів, якими можна скористатися для забезпечення роботи декількох додаткових можливостей профілів.

{continue if "можливість"}
    Негайно припинити обробку файла, якщо "можливість" не визначено (решту вмісту файла буде вилучено). Якщо "можливість" визначено, увесь рядок із цим оператором буде вилучено, а решту шаблону буде оброблено.

{stop if "можливість"}
    Протилежне до "continue if". Негайно припинити обробку файла, якщо визначено "можливість" (решту вмісту файла буде вилучено). Якщо "можливість" не визначено, увесь рядок із цим оператором буде вилучено, а решту шаблону буде оброблено.

{include if "можливість"}
    Включити рядок, де розташовано цей оператор, лише якщо "можливість" визначено.

{exclude if "можливість"}
    Протилежне до "include-if". Включити рядок, де розташовано цей оператор, лише якщо "можливість" не визначено.

{imply "потенційна-можливість" if "можливість"}
    Увімкнути можливість "потенційна-можливість", якщо увімкнено можливість "можливість". Усі інші дані з відповідного рядка буде вилучено, тому не можна додавати щось до цього оператора у тому самому рядку.

{if "можливість":true|false}
    Якщо "можливість" визначено, замінити цей оператор рядком "true", інакше замінити рядком "false".

{if "можливість":true}
    Якщо "можливість" визначено, замінити цей оператор рядком "true", інакше замінити порожнім рядком.

Також у рядку умови можна скористатися логічним виразом замість визначення назви однієї можливості. У такому випадку вираз буде обчислено і визначено його істинність, а далі виконано оператор умови над результатом.

Синтаксична конструкція виразу складається з назв можливостей (наприклад "можливість"), обробка яких повертає true, якщо можливість визначено, і false, якщо можливість не визначено, та таких логічних операторів: and, or та not. Крім того, вираз може бути взято у лапки або складено з декількох допоміжних виразів.

Приклад:

{if "можливість1" or "можливість2":true}
    Якщо визначено "можливість1" або "можливість2", замінити цей оператор рядком "true". Якщо ні, замінити оператор порожнім рядком.

{if not "можливість":true|false}
    Якщо "можливість" не визначено, замінити цей оператор рядком "true", інакше замінити рядком "false".

{if not "можливість":true}
    Якщо "можливість" не визначено, замінити цей оператор рядком "true", інакше замінити порожнім рядком.

{if "можливість1" and ("можливість2" or "можливість3"):true}
    Якщо визначено "можливість1" і одну з можливостей "можливість2" або "можливість3", замінити цей оператор рядком "true". Якщо ні, замінити порожнім рядком.

  ПРИКЛАД

Тут наведено приклад використання оператора "if". Якщо можливість "with-sudo" увімкнено, буде додано "sss" до рядка sudoers.

    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" також увімкне "with-smartcard" для забезпечення використання усіх відповідних модулів PAM. Результат буде таким самим, як і у попередньому прикладі.

    {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 із файлами з наведеного вище списку. Наявними мають бути не обов’язково усі файли, лише файл README є обов’язковим. Інші файли може бути створено за потреби.

Команда authselect create-profile може бути корисною при створенні профілю. Див. сторінку підручника authselect(8) або виведені командою authselect create-profile --help дані, щоб дізнатися більше.

ТАКОЖ ПЕРЕГЛЯНЬТЕ

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