table of contents
- unstable 4.30.2-1
| PAM_SYSTEMD(8) | pam_systemd | PAM_SYSTEMD(8) |
الاسم¶
pam_systemd - تسجيل جلسات المستخدم في مدير تسجيل الدخول systemd
موجز¶
pam_systemd.so
الوصف¶
يسجل pam_systemd جلسات المستخدم لدى مدير تسجيل الدخول systemd systemd-logind.service(8)، وبالتالي في التسلسل الهرمي لمجموعات التحكم systemd.
يطبق الوحدة أيضًا معلمات إدارة الموارد ووقت التشغيل المختلفة على الجلسة الجديدة، كما هو مكون في سجلات مستخدم JSON[1] للمستخدم، عند تعريف أحدها.
عند تسجيل الدخول، تضمن هذه الوحدة — بالاقتران مع systemd-logind.service — ما يلي:
عند تسجيل الخروج، تضمن هذه الوحدة ما يلي:
إذا لم يتم تشغيل النظام باستخدام systemd كنظام تهيئة، لا تفعل هذه الوحدة شيئًا وتعيد PAM_SUCCESS فورًا.
الخيارات¶
الخيارات التالية مفهومة:
class=
جدول 1.
فئات
الجلسة
| الاسم | الشرح |
| user | جلسة مستخدم تفاعلية عادية. هذه هي الفئة المبدئية للجلسات التي يكون فيها طرفية TTY أو عرض X معروفًا في وقت تسجيل الجلسة. |
| user-early | مشابه لـ user ولكن جلسات هذه الفئة لا يتم ترتيبها بعد systemd-user-sessions.service(8)، أي قد تبدأ قبل السماح بإنشاء الجلسات العادية. فئة الجلسة هذه هي المبدئية لجلسات المستخدم الجذر التي كانت ستؤهل لفئة user، انظر أعلاه. (أضيف في v256.) |
| user-light | مشابه لـ user، ولكن جلسات هذه الفئة لن تسحب user@.service(5) الخاص بالمستخدم، وبالتالي قد لا يكون لديها مدير خدمة للمستخدم قيد التشغيل. (أضيف في v258.) |
| user-early-light | مشابه لـ user-early، ولكن جلسات هذه الفئة لن تسحب user@.service(5) الخاص بالمستخدم، وبالتالي قد لا يكون لديها مدير خدمة للمستخدم قيد التشغيل. (أضيف في v258.) |
| user-incomplete | مشابهة لـ user ولكن للجلسات التي لم تُجهز بالكامل بعد، أي ليس لها دليل منزلي مُثبت أو ما شابه. يُستخدم هذا بواسطة systemd-homed.service(8) للسماح للمستخدمين بتسجيل الدخول عبر ssh(1) قبل تثبيت دليلهم المنزلي، مع تأخير التثبيت حتى يقدم المستخدم كلمة مرور فتح القفل. تُرقى جلسات هذه الفئة إلى الفئة العادية user بمجرد تنشيط الدليل المنزلي. |
| greeter | مشابهة لـ user ولكن للجلسات التي تُنشأ بواسطة مدير عرض بشكل مؤقت والتي تطالب المستخدم ببيانات اعتماد تسجيل الدخول. |
| اقفل_الشاشة | مشابهة لـ user ولكن للجلسات التي تُنشأ بواسطة مدير عرض بشكل مؤقت والتي تُظهر شاشة قفل يمكن استخدامها لفتح حسابات مستخدمين أو جلسات مقفلة. |
| background | تُستخدم للجلسات الخلفية، مثل تلك التي يُستدعى بها بواسطة cron(8) والأدوات المشابهة. هذه هي الفئة المبدئية للجلسات التي لا يُعرف لها TTY أو عرض X في وقت تسجيل الجلسة. |
| background-light | مشابهة لـ background، ولكن جلسات هذه الفئة لن تسحب user@.service(5) للمستخدم، وبالتالي قد لا يكون لديها مدير خدمة للمستخدم قيد التشغيل. (أُضيفت في v256.) |
| manager | يُسجل خدمة user@.service(5) للمستخدم تحت فئة الجلسة هذه. (أُضيفت في v256.) |
| manager-early | مشابهة لـ manager، ولكن للمستخدم الجذر. قارن مع حالة user مقابل user-early. (أُضيفت في v256.) |
| none | يتجاوز تسجيل هذه الجلسة مع logind. لن يُنشأ نطاق جلسة، ولن يُبدأ مدير خدمة المستخدم. (أُضيفت في v258.) |
إذا لم تُحدد فئة جلسة عبر خيار وحدة PAM أو عبر متغير البيئة $XDG_SESSION_CLASS، تُختار الفئة آليًا، اعتمادًا على معاملات جلسة متنوعة، مثل نوع الجلسة (إذا كان معروفًا)، وما إذا كانت الجلسة تحتوي على TTY أو عرض X11، وحالة المستخدم. لاحظ أن أدوات متنوعة تسمح بتعيين فئة الجلسة لجلسات PAM المُخصصة حديثًا صراحةً عبر متغير البيئة $XDG_SESSION_CLASS. على سبيل المثال، تدعم وظائف cron UNIX الكلاسيكية تعيينات متغيرات البيئة (انظر crontab(5))، والتي قد تُستخدم للاختيار بين فئة الجلسة background و background-light لكل وظيفة cron على حدة، أو قد يُستخدم run0 --setenv=XDG_SESSION_CLASS=user-light للاختيار بين user و user-light للجلسات المميزة المُستدعاة.
أُضيف في الإصدارة 197.
type=
أُضيف في الإصدارة 209.
desktop=
أُضيف في الإصدار 240.
area=
قد تُستخدم هذه الوظيفة للحفاظ على أدلة منزلية ثانوية منفصلة متعددة داخل الدليل المنزلي الرئيسي للمستخدم. عادةً، تُحدد المنطقة التي يُسجل الدخول إليها أثناء تسجيل الدخول، إذا كان الحساب يسمح بذلك (الحسابات المقدمة بواسطة pam_systemd_home(8) تفعل)، ولكن قد يُستخدم هذا المعامل لتعريف مبدئي إذا لم يُقدم ذلك.
لاحظ أن هذا يضبط $HOME فقط أثناء تسجيل الدخول، ولا يؤثر على الدليل المنزلي المُبلغ عنه بخلاف ذلك للمستخدم. يعني هذا تحديدًا أن sshd(8) سيستمر في البحث عن مفاتيح SSH للمستخدم فقط في الدليل المنزلي الرئيسي للمستخدم، وليس في أي من مناطقهم.
لاحظ أن المنطقة المبدئية لتسجيل الدخول يمكن أيضًا تكوينها كجزء من حساب المستخدم. المنطقة المحددة عبر area= تتجاوز المنطقة المبدئية المُكونة هناك. لاحظ أيضًا أنه إذا حُددت المنطقة صراحةً بواسطة المستخدم في وقت تسجيل الدخول، فإنها تتجاوز كليهما. لاحظ أيضًا أن تعيين هذا المعامل إلى سلسلة فارغة له تأثير إلغاء تأثير أي منطقة مبدئية مُكونة كجزء من سجل المستخدم، أي ضمان تسجيل دخول المستخدم إلى الدليل المنزلي الرئيسي لحسابه.
للمزيد من التفاصيل حول مفهوم المنطقة، راجع pam_systemd_home(8).
أُضيف في الإصدار 258.
default-capability-bounding-set=, default-capability-ambient-set=
أُضيف في الإصدار 254.
debug[=]
أنواع الملحقات المتوفرة¶
يُقدم session فقط.
البيئة¶
يتم تهيئة متغيرات البيئة التالية بواسطة الوحدة وهي متاحة لعمليات جلسة المستخدم:
$XDG_SESSION_ID
$XDG_RUNTIME_DIR
$TZ، $EMAIL، $LANG
أُضيف في الإصدار 245.
$SHELL_PROMPT_PREFIX، $SHELL_PROMPT_SUFFIX، $SHELL_WELCOME
أُضيف في الإصدار 257.
تُقرأ متغيرات البيئة التالية بواسطة الوحدة وقد تُستخدم بواسطة خدمة PAM لتمرير بيانات وصفية إلى الوحدة. إذا لم تُعيّن هذه المتغيرات عند استدعاء وحدة PAM ولكن يمكن تحديدها بطريقة أخرى، فتُعيّن بواسطة الوحدة، بحيث تُهيأ هذه المتغيرات للجلسة والتطبيقات إذا كانت معروفة على الإطلاق.
$XDG_SESSION_TYPE
أُضيف في الإصدارة 209.
$XDG_SESSION_CLASS
أُضيف في الإصدارة 209.
$XDG_SESSION_DESKTOP
أُضيف في الإصدارة 209.
$XDG_SEAT
أُضيف في الإصدارة 209.
$XDG_VTNR
أُضيف في الإصدارة 209.
$XDG_AREA
أُضيف في الإصدار 258.
$XDG_SESSION_EXTRA_DEVICE_ACCESS
أُضيف في الإصدار 260.
إذا لم يُعيّن، فسيهيئ pam_systemd $XDG_SEAT و$XDG_VTNR استنادًا إلى متغير $DISPLAY (إذا كان الأخير معينًا).
حدود الجلسة¶
يمكن لوحدات PAM السابقة في المكدس، أي تلك التي تأتي قبل pam_systemd.so، تعيين حدود نطاق الجلسة باستخدام كائنات سياق PAM. تُقدم بيانات هذه الكائنات كسلاسل C منتهية بـ NUL وتُخطط مباشرة لتوجيهات التحكم في موارد الوحدة المعنية. لاحظ أن هذه الحدود تنطبق على جلسات المستخدم الفردية، ولا تنطبق على جميع عمليات المستخدم ككل. على وجه الخصوص، مثيل الوحدة user@.service لكل مستخدم، الذي يشغل عملية مدير systemd --user وعملياته الفرعية، ويُتتبع خارج أي جلسة، ويُشارك بواسطة جميع جلسات المستخدم، لا يشمله هذه الحدود.
انظر systemd.resource-control(5) لمزيد من المعلومات حول الموارد. أيضًا، انظر pam_set_data(3) لمعلومات إضافية حول كيفية تعيين كائنات السياق.
systemd.memory_max=
أُضيف في الإصدار 239.
systemd.tasks_max=
أُضيف في الإصدار 239.
systemd.cpu_weight=
أُضيف في الإصدار 239.
systemd.io_weight=
أُضيف في الإصدار 239.
systemd.runtime_max_sec=
أُضيف في الإصدارة 244.
بيانات مثال يمكن توفيرها من وحدة PAM أخرى:
pam_set_data(handle, "systemd.memory_max", (void *)"200M", cleanup); pam_set_data(handle, "systemd.tasks_max", (void *)"50", cleanup); pam_set_data(handle, "systemd.cpu_weight", (void *)"100", cleanup); pam_set_data(handle, "systemd.io_weight", (void *)"340", cleanup); pam_set_data(handle, "systemd.runtime_max_sec", (void *)"3600", cleanup);
مثال¶
إليك مثال لجزء تهيئة PAM يسمح بإدارة جلسات المستخدمين بواسطة systemd-logind.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-user-sessions.service(8), user@.service(5), systemd-logind.service(8), logind.conf(5), loginctl(1), pam_systemd_home(8), pam.conf(5), pam.d(5), pam(8), pam_loginuid(8), systemd.scope(5), systemd.slice(5), systemd.service(5)
ملاحظات¶
- 1.
- سجلات مستخدم JSON
- 2.
- مواصفات إدخال سطح المكتب
- 3.
- مواصفات مجلد الأساس XDG
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 260.1 |