AUTHSELECT-PROFILES(5)

NAME
authselect-profiles - authselect profillerinin genişletilmesi.

AÇIKLAMA

Bu kılavuz sayfasında authselect profillerinin nasıl düzenlendiği ve yeni profillerin nasıl oluşturulacağı açıklanmaktadır.

PROFİL DİZİNLERİ

Profiller üç dizinden birinde bulunabilir.

"/usr/share/authselect/default"
    Authselect ile birlikte gelen profilleri içeren salt okunur dizin.

"/usr/share/authselect/vendor"
    Öntanımlı dizindeki profilleri geçersiz kılabilen sağlayıcıya özgü profiller için salt okunur dizin.

"/etc/authselect/custom"
    Yönetici tarafından tanımlanan profillerin yeri.

PROFİL DOSYALARI

Her profil, zorunlu profil açıklamasını sağlayan ve sistemde yapılan değişiklikleri açıklayan bu dosyalardan bir veya daha fazlasından oluşmaktadır.

README
    Profilin açıklaması. İlk satır profilin adı olmalıdır.

system-auth
    Neredeyse tüm bireysel hizmet yapılandırma dosyalarının kullandığı PAM yığını.

password-auth, smartcard-auth, fingerprint-auth
    Bu PAM yığınları, tek bir toplu görüşme yerine eş zamanlı bireysel görüşmeler yaparak farklı aygıt türlerinden kimlik doğrulaması gerçekleştiren uygulamalar içindir.

postlogin
    Bu PAM yığınının amacı, system-auth veya diğer ortak PAM yapılandırma dosyalarında yapılandırılan yığının ardından çağırılması gereken tüm PAM modülleri için ortak bir yer sağlamaktır. Kabuk veya dosya erişimine sahip oturum açma hizmeti sağlayan tüm bireysel hizmet yapılandırma dosyalarında bulunur. NOT: postlogin yapılandırma dosyasındaki modüller, system-auth yapılandırma dosyasındaki modüllerin başarılı veya başarısız olmasına bakılmaksızın yürütülür.

nsswitch.conf
    Name Service Switch yapılandırma dosyası.

dconf-db
    dconf veri tabanındaki değişiklikler. Bu dosyanın ana kullanım amacı, akıllı kart ve parmak izi kimlik doğrulamasını etkinleştirmek veya devre dışı bırakmak için gnome oturum açma ekranındaki değişiklikleri ayarlamaktır.

dconf-locks
    Bu dosya, dconf veri tabanında ayarlanan değerlerin kilitlerini tanımlar.

  KOŞULLU SATIRLAR

Bu dosyaların her biri bir şablon görevi görmektedir. Şablon, bazı isteğe bağlı profil özellikleri sağlamak için kullanılabilen birkaç işlemin isteğe bağlı kullanımına sahip bir düz metin dosyasıdır.

{continue if "özellik"}
    "özellik" tanımlı olmadığı sürece dosyanın işlenmesini hemen durdur (dosya içeriğinin geri kalanı kaldırılacaktır). "özellik" tanımlıysa, bu işlemle birlikte tüm satır kaldırılacak ve şablonun geri kalanı işlenecektir.

{stop if "özellik"}
    "continue if" koşulunun tersi. "özellik" tanımlıysa dosyanın işlenmesini hemen durdur (dosya içeriğinin geri kalanı kaldırılacaktır). "özellik" tanımlı değilse, bu işlemle birlikte tüm satır kaldırılacak ve şablonun geri kalanı işlenecektir.

{include if "özellik"}
    Bu işlemin bulunduğu satırı yalnızca "özellik" tanımlıysa dahil et.

{exclude if "özellik"}
    "include-if" koşulunun tersi. Bu işlemin bulunduğu satırı yalnızca "özellik" tanımlı değilse dahil et.

{imply "dolaylı-özellik" if "özellik"}
    "özellik" etkinse "dolaylı-özellik" özelliğini etkinleştir. Bu işlemle birlikte tüm satır kaldırılır, bu nedenle bu işlemin bulunduğu aynı satıra başka bir şey eklemek mümkün değildir.

{if "özellik":true|false}
    "özellik" tanımlıysa bu işlemi "true" dizgesiyle, değilse "false" dizgesiyle değiştir.

{if "özellik":true}
    "özellik" tanımlıysa bu işlemi "true" dizgesiyle, değilse boş dizgeyle değiştir.

Koşullu satırda bir özellik adı belirtmek yerine mantıksal ifade de kullanılabilir. Bu durumda ifade doğru veya yanlış olarak değerlendirilecek ve koşullu operator sonuca göre hareket edecektir.

İfade söz dizimi; özellik tanımlıysa true, değilse false döndüren özellik adlarından (örn. "özellik") ve şu mantıksal işlemlerden oluşur: and, or ve not. İfade ayrıca parantez içine alınabilir ve birden fazla alt ifade içerebilir.

Örneğin:

{if "özellik1" or "özellik2":true}
    "özellik1" veya "özellik2" tanımlıysa bu işlemi "true" dizgesiyle, değilse boş dizgeyle değiştir.

{if not "özellik":true|false}
    "özellik" tanımlıysa bu işlemi "false" dizgesiyle, değilse "true" dizgesiyle değiştir.

{if not "özellik":true}
    "özellik" tanımlıysa bu işlemi boş dizgeyle, değilse "true" dizgesiyle değiştir.

{if "özellik1" and ("özellik2" or "özellik3"):true}
    "özellik1" tanımlıysa, ve "özellik2" ile "özellik3" özelliklerinden bir tanesi tanımlıysa bu işlemi "true" dizgesiyle, değilse boş dizgeyle değiştir.

  ÖRNEK

Aşağıda "if" işleminin kullanımına bir örnek verilmiştir. Bu, "with-sudo" özelliği etkinse sudoers satırına "sss" ekleyecektir.

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

Aşağıda "continue-if" ve "include-if" işlemlerine bir örnek verilmiştir. "with-smartcard" özelliği etkinleştirilmediği sürece, sonuç olarak elde edilecek dosya boş olacaktır. Etkinleştirilirse ve ayrıca "with-faillock" özelliği de etkinse, pam_faillock desteğini de etkinleştirecektir.

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

Aşağıda mantıksal ifade kullanan bir "continue-if" örneği verilmiştir. "with-smartcard" veya "with-smartcard-required" ayarlanmadığı sürece dosya boş olacaktır. Bu, her iki özelliği de içermesi gerekmeyen, yalnızca "with-smartcard-required" özelliğinin gerekli olduğu authselect select komutunun çağrılmasını kolaylaştıracaktır.

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

Aşağıda "imply-if" işlemine bir örnek verilmiştir. "with-smartcard-required" özelliğini etkinleştirmek, ilgili tüm PAM modüllerinin kullanıldığından emin olmak için "with-smartcard" özelliğini de etkinleştirecektir. Bu, önceki örnekle aynı davranışı sağlayacaktır.

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

YENİ BİR PROFİL OLUŞTURMA

Authselect içinde yeni bir profil kaydetmek için, authselect profil konumlarından birinde yukarıda listelenen dosyaları içeren bir dizin oluşturun. Dosyaların hepsinin bulunması zorunlu değildir, yalnızca README dosyası zorunludur. Diğer dosyalar ihtiyaca göre oluşturulabilir.

Yeni bir profil oluştururken authselect create-profile komutu faydalı olabilir. Daha fazla bilgi için authselect(8) kılavuz sayfasına bakın veya authselect create-profile --help komutunu kullanın.

AYRICA BAKIN

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