SYSTEMD-USERDBD.SERVICE(8) systemd-userdbd.service SYSTEMD-USERDBD.SERVICE(8)

systemd-userdbd.service, systemd-userdbd - سرویس دیمن مالتی‌پلکسر پایگاه‌داده کاربر و گروه

systemd-userdbd.service

/usr/lib/systemd/systemd-userdbd

systemd-userdbd یک سرویس سیستمی است که جستجوهای کاربر/گروه را بین تمام سرویس‌های محلی که تعاریف رکوردهای کاربر/گروه JSON را به سیستم ارائه می‌دهند، چندپخشی (مالتی‌پلکس) می‌کند. علاوه بر این، رکوردهای کاربر/گروه با قالب JSON را از رکوردهای کلاسیک کاربر/گروه در UNIX/glibc NSS سنتز و ترکیب می‌کند تا سازگاری کامل با گذشته فراهم شود. این سرویس همچنین ممکن است رکوردهای کاربر/گروه با فرمت JSON را که به‌صورت ایستا تعریف شده‌اند از پرونده‌های موجود در /etc/userdb/، /run/userdb/، /run/host/userdb/ و /usr/lib/userdb/ با پسوند ".user" یا ".group" دریافت کند. برای جزئیات بیشتر درباره این پسوندها، صفحه راهنمای nss-systemd(8) را بخوانید.

بیشتر قابلیت‌های systemd-userdbd از طریق دستور userdbctl(1) قابل دسترسی است.

رکوردهای کاربر و گروهی که این سرویس امکان دسترسی به آن‌ها را فراهم می‌کند، از تعاریف JSON User Records[1] و JSON Group Record[2] پیروی می‌کنند. این سرویس User/Group Record Lookup API via Varlink[3] را پیاده‌سازی کرده و دسترسی به سایر سرویس‌هایی که این رابط برنامه‌نویسی را پیاده‌سازی کرده‌اند نیز مالتی‌پلکس می‌کند. از این رو، این سرویس هم کارساز (سرور) و هم کارخواه (کلاینت) این رابط برنامه‌نویسی به‌شمار می‌رود.

این سرویس سه سرویس متمایز Varlink[4] ارائه می‌دهد: io.systemd.Multiplexer یک رابط برنامه‌نویسی (API) واحد و یکپارچه برای استعلام رکوردهای کاربر و گروه با فرمت JSON فراهم می‌کند. این سرویس در سطح داخلی با تمام سرویس‌های دیگر رکوردهای کاربر/گروه که به‌طور موازی روی سیستم در حال اجرا هستند ارتباط برقرار کرده و هر اطلاعاتی که کشف شود را فوروارد می‌کند. این کار کلاینت‌ها را به‌طور چشمگیری ساده می‌کند، زیرا آن‌ها تنها نیازمند ارتباط با یک سرویس واحد هستند، به‌جای اینکه مجبور باشند با همه آن‌ها به‌صورت موازی ارتباط برقرار کنند. io.systemd.NameServiceSwitch سازگاری با رکوردهای کلاسیک کاربر در UNIX/glibc NSS را فراهم می‌کند؛ بدین معنی که رکوردهای struct passwd و struct group که از طریق رابط‌هایی مانند getpwnam(1) به‌دست آمده‌اند را به رکوردهای کاربر/گروه JSON تبدیل می‌کند و در نتیجه تفاوت‌های میان سرویس‌ها را تا جای ممکن پنهان می‌سازد. io.systemd.DropIn رکوردهای کاربر/گروه با ساختار JSON را از دایرکتوری‌های تکمیلی (drop-in) یادشده در دسترس قرار می‌دهد.

systemd(1), nss-systemd(8), userdbctl(1), systemd-homed.service(8)

1.
JSON User Records
2.
JSON Group Record
3.
User/Group Record Lookup API via Varlink
4.
Varlink
systemd 261.2