PAM_SYSTEMD_HOME(8)

الاسم
pam_systemd_home - استيثاق المستخدمين وتركيب المجلدات الرئيسية عبر systemd-homed.service

موجز

pam_systemd_home.so

الوصف

يضمن pam_systemd_home أن المجلدات الرئيسية المُدارة بواسطة systemd-homed.service(8) تُفعّل آليًا (تُركّب) عند دخول المستخدم، وتُعطّل (تُفكّ) عند انتهاء آخر جلسة للمستخدم. لهؤلاء المستخدمين، يوفر أيضًا الاستيثاق (عند استخدام تشفير القرص لكل مستخدم، يُشتق مفتاح تشفير القرص من مُعتمد الاستيثاق المُقدم وقت الدخول)، وإدارة الحسابات (يحتوي سجل المستخدم JSON[1] المُضمن في مخزن المجلد الرئيسي على تفاصيل الحساب)، وينفذ تحديث كلمة مرور التشفير (المستخدمة أيضًا لاستيثاق المستخدم).

الخيارات

الخيارات التالية مفهومة:

suspend=
    يأخذ وسيطًا منطقيًا. إذا كان صحيحًا، سيُعلّق المجلد الرئيسي للمستخدم آليًا أثناء تعليق النظام؛ إذا كان خاطئًا سيبقى نشطًا. يُحسّن التعليق الآلي للمجلد الرئيسي الأمان بشكل كبير حيث تُزال مواد المفاتيح السرية آليًا من الذاكرة قبل وضع النظام في النوم ويجب إعادة اكتسابها (من خلال إعادة استيثاق المستخدم) عند العودة من التعليق. يُوصى بتعيين هذه المعلمة لجميع تطبيقات PAM التي تدعم إعادة الاستيثاق آليًا عبر PAM عند استئناف النظام. إذا كانت جلسات متعددة لنفس المستخدم مفتوحة بالتوازي، سيُترك المجلد الرئيسي للمستخدم غير معلّق عند تعليق النظام طالما أن جلسة واحدة على الأقل لا تعيّن هذه المعلمة إلى تشغيل. المبدئي هو إيقاف.

    لاحظ أن عمليات الدخول عبر TTY لا تدعم عمومًا إعادة الاستيثاق عند استئناف النظام. إعادة الاستيثاق عند استئناف النظام هو مفهوم قابل للتنفيذ بشكل رئيسي في البيئات الرسومية، في شكل شاشات قفل تُظهر آليًا عندما يذهب النظام إلى النوم. هذا يعني أنه إذا استخدم المستخدم جلسات دخول رسومية تنفذ آلية إعادة الاستيثاق المطلوبة وجلسات وحدة تحكم لا تفعل ذلك، لا يُقفل المجلد الرئيسي أثناء التعليق، بسبب المنطق المُوضح أعلاه. مع ذلك، من الممكن تعيين هذا الحقل لعمليات الدخول عبر TTY أيضًا، متجاهلاً حقيقة أن عمليات الدخول عبر TTY لا تدعم آلية إعادة الاستيثاق فعليًا. في هذه الحالة، ستظهر جلسات TTY وكأنها معلقة حتى يدخل المستخدم على طرفية افتراضية أخرى (بغض النظر عن عبر جلسة TTY أخرى أو بيئة رسومية) مما سيستأنف المجلد الرئيسي ويفك حظر جلسة TTY الأصلية. (لاحظ أن عدم وجود قفل شاشة على جلسات TTY يعني أنه على الرغم من أن جلسة TTY تبدو معلقة، لا يزال يمكن وضع ضغطات المفاتيح في قائمة انتظار فيها، ويمكن قراءة محتويات الشاشة الحالية دون إعادة استيثاق؛ هذا القيد غير مرتبط بإدارة المجلد الرئيسي التي ينفذها pam_systemd_home و systemd-homed.service.)

    يُوصى بشدة بتشغيل هذا الخيار مبدئيًا لجميع الجلسات، ولكن فقط إذا كانت الخدمة التي تدير هذه الجلسات تنفذ إعادة الاستيثاق المذكورة أعلاه بشكل صحيح. لاحظ أن إعادة الاستيثاق يجب أن تحدث من مكون يعمل خارج سياق المستخدم، بحيث لا يتطلب الوصول إلى المجلد الرئيسي للمستخدم للتشغيل. تقليديًا، لا تنفذ معظم بيئات سطح المكتب قفل الشاشة بهذه الطريقة، وتحتاج إلى التحديث وفقًا لذلك.

    يمكن أيضًا التحكم في هذا الإعداد عبر متغير البيئة $SYSTEMD_HOME_SUSPEND (انظر أدناه)، الذي يقرأه pam_systemd_home أثناء التهيئة ويضبطه للجلسات. إذا تم تعيين متغير البيئة وتحديد معلمة الوحدة، تأخذ الأخيرة الأولوية.

    أُضيف في الإصدار 245.

debug[=]
    يأخذ وسيطاً بولياً اختيارياً. إذا كان نعم أو بدون الوسيط، فستقوم الوحدة بتسجيل معلومات تصحيح الأخطاء أثناء عملها.

    أُضيف في الإصدار 245.

دعم منطقة المجلد الرئيسي

تدعم المجلدات الرئيسية المُدارة بواسطة systemd-homed.service(8) "مناطق" مجلد رئيسي متعددة، وهي مجلدات رئيسية ثانوية إضافية للمستخدم داخل المجلد الرئيسي الأساسي. مثال: عند وقت الدخول، إذا حدد مستخدم "lennart" مع مجلد رئيسي /home/lennart "lennart%versuch1" كاسم حساب أثناء الدخول، سينفذ pam_systemd_home دخولاً إلى "lennart" لكنه يضمن تعيين متغير $HOME إلى /home/lennart/Areas/versuch1 بدلاً من /home/lennart المعتاد.

هذا مفيد بشكل خاص عند مشاركة نفس المجلد الرئيسي بين أنظمة متعددة (على سبيل المثال بين مضيف وآلة افتراضية)، مع الرغبة في مشاركة المجلد الرئيسي إلى حد كبير، ولكن مع وجود تكوين جلسة منفصل.

لاحظ أن المنطقة المبدئية للدخول يمكن أيضًا ترميزها في سجل المستخدم، ويمكن تحديدها ضمن معلمات تكوين pam_systemd(8). ومع ذلك، فإن منطقة صريحة محددة عند وقت الدخول (عبر "%" الموصوفة أعلاه) تتجاوز أي مبدئي من هذا القبيل. لاحظ أيضًا أن مجرد إلحاق حساب بـ "%" عند وقت الدخول (أي تحديد اسم منطقة فارغ) له تأثير ضمان دخول إلى المجلد الرئيسي الأساسي، متجاوزًا أي تكوين منطقة مبدئي عبر سجل المستخدم أو PAM.

لاحظ أن ليست جميع آليات الدخول متوافقة مع بناء الجملة "%" عند وقت الدخول. والأكثر وضوحًا أن ssh(8) ليس كذلك.

لاحظ أن دليل المنطقة للدخول إليه يجب أن يكون موجودًا لكي يُحترم تحديد المنطقة. إذا تم تحديد منطقة أثناء الدخول عبر منطق "%" (أو الآليات الأخرى المذكورة) وهي غير موجودة فعليًا، سيُتجاهل الطلب، وسيدخل المستخدم إلى المجلد الرئيسي الأساسي بدلاً من ذلك.

عادة، لاستخدام الآلية، قم بإعداد منطقة أولاً، مثل هذا:

    lennart@zeta$ mkdir -p ~/Areas
    lennart@zeta$ cp -av /etc/skel ~/Areas/versuch1

يجب أن يكون هذا كافيًا للدخول إلى المنطقة المُنشأة حديثًا، إما عبر طرفية عادية (باستخدام "lennart%versuch1" عند المطالبة باسم مستخدم)، أو عبر run0(1):

    lennart@zeta$ run0 --area=versuch1

أنواع الملحقات المتوفرة

تنفذ الوحدة جميع عمليات PAM الأربع: auth (للسماح بالاستيثاق باستخدام البيانات المشفرة)، account (لأن المستخدمين مع حسابات مستخدم systemd-homed.service موصوفون في سجل مستخدم JSON[1] ويمكن تكوينهم بتفصيل أكثر من قاعدة بيانات مستخدم Linux التقليدية)، session (لأن جلسات المستخدم يجب تتبعها لتنفيذ التحرير الآلي عندما تختفي آخر جلسة للمستخدم)، password (لتغيير كلمة مرور التشفير — المستخدمة أيضًا لاستيثاق المستخدم — عبر PAM).

البيئة

تُهَيَّأُ متغيرات البيئة التالية بواسطة الوحدة وهي متاحة لعمليات جلسة المستخدم:

$SYSTEMD_HOME=1
    تشير إلى أن الدليل الرئيسي للمستخدم يُدار بواسطة systemd-homed.service.

    أُضيف في الإصدار 245.

$SYSTEMD_HOME_SUSPEND=
    تشير إلى ما إذا كانت الجلسة قد سُجلت مع تمكين آلية التعليق أو تعطيلها (انظر أعلاه). قيمة المتغير إما "0" أو "1". لاحظ أن الوحدة النمطية تقرأ المتغير عند التهيئة وتضبطه للجلسات.

    أُضيف في الإصدار 246.

مثال

إليك مثال لجزء من تهيئة PAM يسمح للمستخدمين المُدارين بواسطة systemd-homed.service بتسجيل الدخول:

    #%PAM-1.0
        -auth     [success=done authtok_err=bad perm_denied=bad maxtries=bad default=ignore] pam_systemd_home.so
    auth      sufficient pam_unix.so
    auth      required   pam_deny.so

    account   required   pam_nologin.so
    -account  [success=done authtok_expired=bad new_authtok_reqd=bad maxtries=bad acct_expired=bad default=ignore] pam_systemd_home.so
    account   required   pam_unix.so

    -password sufficient pam_systemd_home.so
    password  sufficient pam_unix.so sha512 shadow try_first_pass
    password  required   pam_deny.so

    -session  optional   pam_keyinit.so revoke
    -session  optional   pam_loginuid.so
    -session  optional   pam_systemd_home.so
    -session  optional   pam_systemd.so
    session   required   pam_unix.so

انظر أيضًا

systemd(1), systemd-homed.service(8), homed.conf(5), homectl(1), pam_systemd(8), pam.conf(5), pam.d(5), pam(8)

ملاحظات

1.  سجل المستخدم بتنسيق JSON
    https://systemd.io/USER_RECORD/

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.