- unstable 4.30.2-1
| NSS-SYSTEMD(8) | nss-systemd | NSS-SYSTEMD(8) |
الاسم¶
nss-systemd، libnss_systemd.so.2 - تحليل أسماء المستخدمين والمجموعات في يونكس للبحث عن المستخدم/المجموعة عبر Varlink
موجز¶
libnss_systemd.so.2
الوصف¶
nss-systemd هي وحدة إضافية لوظيفة GNU Name Service Switch (NSS) لمكتبة GNU C (glibc)، توفر تحليل أسماء المستخدمين والمجموعات في يونكس للخدمات التي تنفذ واجهة برمجة تطبيقات البحث عن سجلات المستخدم/المجموعة عبر Varlink[1]، مثل مدير النظام والخدمات systemd(1) (لميزة DynamicUser= الخاصة به، انظر systemd.exec(5) للتفاصيل)، أو systemd-homed.service(8)، أو systemd-machined.service(8).
تضمن هذه الوحدة أيضًا بقاء المستخدمين والمجموعات root وnobody (أي المستخدمين/المجموعات ذات UIDs/GIDs 0 و65534) قابلة للحل في جميع الأوقات، حتى إذا لم تكن مدرجة في /etc/passwd أو /etc/group، أو إذا كانت هذه الملفات مفقودة.
تستخدم هذه الوحدة بشكل مفضل systemd-userdbd.service(8) لحل المستخدمين والمجموعات، ولكنها تعمل أيضًا بدون تشغيل الخدمة.
لتفعيل وحدة NSS، أضف "systemd" إلى الأسطر التي تبدأ بـ "passwd:" و"group:" و"shadow:" و"gshadow:" في /etc/nsswitch.conf.
يوصى بوضع "systemd" بعد إدخال "files" في أسطر /etc/nsswitch.conf بحيث تكون التعيينات المستندة إلى /etc/passwd و/etc/group و/etc/shadow و/etc/gshadow ذات أولوية.
سجلات JSON الثابتة للمستخدم/المجموعة¶
بالإضافة إلى سجلات المستخدم/المجموعة التي تم الحصول عليها عبر واجهات Varlink IPC المذكورة أعلاه وحسابات root وnobody المُركبة، توفر هذه الوحدة أيضًا حسابات المستخدمين والمجموعات للنظام المُعرفة في ملفات إدراج ثابتة في الدلائل /etc/userdb/ و/run/userdb/ و/run/host/userdb/ و/usr/lib/userdb/.
هذه آلية بسيطة لتوفير سجلات ثابتة للمستخدمين والمجموعات عبر ملفات إدراج JSON. يجب تعريف سجلات المستخدم هذه بالتنسيق الموصوف في مواصفات سجلات مستخدم JSON[2] ووضعها في أحد الدلائل المذكورة أعلاه تحت اسم ملف مكون من اسم المستخدم مع اللاحقة .user، مع وضع وصول قابل للقراءة للجميع. يجب أيضًا إنشاء رابط رمزي باسم UID لسجل المستخدم المنسق عشريًا مع اللاحقة .user يشير إلى ملف السجل الرئيسي، للسماح بالبحث باسم المستخدم وبـ UID. يمكن أيضًا توفير بيانات سجل المستخدم المميزة (مثل كلمات مرور يونكس المُجزأة) اختياريًا، في زوج من ملفات الرفيق المنفصلة مع اللاحقة .user-privileged. يجب تخزين البيانات في ملف عادي باسم المستخدم، مع اللاحقة .user-privileged، ورابط رمزي يشير إليه، باسم UID الرقمي المستخدم المنسق عشريًا مع نفس اللاحقة. يجب ألا تكون ملفات الرفيق هذه قابلة للقراءة لأي شخص باستثناء root. مثال:
-rw-r--r--. 1 root root 723 May 10 foobar.user -rw-------. 1 root root 123 May 10 foobar.user-privileged lrwxrwxrwx. 1 root root 19 May 10 4711.user -> foobar.user lrwxrwxrwx. 1 root root 19 May 10 4711.user-privileged -> foobar.user-privileged
بالمثل، يمكن تعريف سجلات المجموعة باتباع التنسيق الموصوف في سجل مجموعة JSON[3]، باستخدام لاحقات الملف .group و.group-privileged.
يجب ألا تحتوي ملفات سجل المستخدم/المجموعة الرئيسية (أي تلك ذات اللواحق .user و.group) على القسم "privileged" كما هو موصوف في المواصفات. يجب أن تحتوي ملفات سجل المستخدم/المجموعة المميزة (أي تلك ذات اللواحق .user-privileged و.group-privileged) على هذا القسم حصريًا.
بالإضافة إلى نوعي ملفات سجل المستخدم ونوعي ملفات سجل المجموعة، هناك نوع خامس من الملفات يمكن وضعه في الدلائل التي يتم البحث فيها: ملفات تشير إلى عضوية المستخدمين في المجموعات. على وجه التحديد، لكل زوج مستخدم/مجموعة حيث يجب أن يكون المستخدم عضوًا في مجموعة، يجب إنشاء ملف باسم "username:groupname.membership"، أي اسم مستخدم يونكس النصي، متبوعًا بنقطتين، متبوعًا باسم مجموعة يونكس النصي، مع اللاحقة ".membership". محتويات هذه الملفات لا تُقرأ حاليًا، ومع ذلك يُوصى بإنشائها تحتوي على كائن JSON فارغ (أي "{}"). مجرد وجود هذه الملفات كافٍ للتأثير على عضوية المستخدم/المجموعة. إذا قدم برنامج ملفات سجل المستخدم و/أو المجموعة في الدلائل التي يتم البحث فيها، فيجب عليه دائمًا إنشاء هذه الملفات أيضًا، لكل من العضويات الأساسية والمساعدة في المجموعة.
لاحظ أن سجلات المستخدم/المجموعة الثابتة لا تتجاوز بشكل عام السجلات المتعارضة في /etc/passwd أو /etc/group أو قواعد بيانات الحسابات الأخرى. في الواقع، قبل إدراج هذه الملفات، يجب اتخاذ مستوى معقول من الحذر لتجنب تعارضات أسماء المستخدمين/المجموعات وUID/GID.
خدمة systemd-userdb-load-credentials.service تعمل آليًا عند الإقلاع وتثبت هذه الملفات من سجلات المستخدم التي تم تمريرها عبر بيانات اعتماد النظام. انظر userdbctl(1) وsystemd.system-credentials(7) للتفاصيل.
التكوين في /ETC/NSSWITCH.CONF¶
هذا مثال لملف /etc/nsswitch.conf الذي يفعل nss-systemd بشكل صحيح:
passwd: files systemd group: files [SUCCESS=merge] systemd shadow: files systemd gshadow: files systemd hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns networks: files البروتوكولات: ملفات db الخدمات: ملفات db ethers: ملفات db rpc: ملفات db netgroup: nis
مثال: التعيينات المقدمة من خدمة systemd-machined¶
يُنشأ الحاوي "rawhide" باستخدام systemd-nspawn(1):
# systemd-nspawn -M rawhide --boot --network-veth --private-users=pick توليد الحاوية rawhide في /var/lib/machines/rawhide. تم اختيار نطاق أسماء المستخدمين الأساس 20119552 والمدى 65536. ... $ machinectl --max-addresses=3 MACHINE CLASS SERVICE OS VERSION ADDRESSES rawhide container systemd-nspawn fedora 30 169.254.40.164 fe80::94aa:3aff:fe7b:d4b9 $ getent passwd vu-rawhide-0 vu-rawhide-81 vu-rawhide-0:*:20119552:65534:vu-rawhide-0:/:/usr/sbin/nologin vu-rawhide-81:*:20119633:65534:vu-rawhide-81:/:/usr/sbin/nologin $ getent group vg-rawhide-0 vg-rawhide-81 vg-rawhide-0:*:20119552: vg-rawhide-81:*:20119633: $ ps -o user:15,pid,tty,command -e|grep '^vu-rawhide' vu-rawhide-0 692 ? /usr/lib/systemd/systemd vu-rawhide-0 731 ? /usr/lib/systemd/systemd-journald vu-rawhide-192 734 ? /usr/lib/systemd/systemd-networkd vu-rawhide-193 738 ? /usr/lib/systemd/systemd-resolved vu-rawhide-0 742 ? /usr/lib/systemd/systemd-logind vu-rawhide-81 744 ? /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only vu-rawhide-0 746 ? /usr/sbin/sshd -D ... vu-rawhide-0 752 ? /usr/lib/systemd/systemd --user vu-rawhide-0 753 ? (sd-pam) vu-rawhide-0 1628 ? login -- zbyszek vu-rawhide-1000 1630 ? /usr/lib/systemd/systemd --user vu-rawhide-1000 1631 ? (sd-pam) vu-rawhide-1000 1637 pts/8 -zsh
انظر أيضًا¶
systemd(1)، systemd.exec(5)، nss-resolve(8)، nss-myhostname(8)، nss-mymachines(8)، systemd-userdbd.service(8)، systemd-homed.service(8)، systemd-machined.service(8)، userdbctl(1)، systemd.system-credentials(7)، nsswitch.conf(5)، getent(1)
ملاحظات¶
- 1.
- واجهة برمجة تطبيقات البحث عن سجل المستخدم/المجموعة عبر Varlink
- 2.
- سجلات مستخدم JSON
- 3.
- سجل مجموعة JSON
ترجمة¶
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| systemd 260.1 |