| SSSD-SUDO(5) | قالبهای پرونده و قراردادها | SSSD-SUDO(5) |
نام (NAME)
sssd-sudo - پیکربندی sudo به همراه بکاند SSSD
شرح (DESCRIPTION)
این صفحه راهنما نحوه پیکربندی sudo(8) را برای همکاری با sssd(8) و چگونگی ذخیرهسازی موقت (cache) قوانین sudo توسط SSSD شرح میدهد.
پیکربندی SUDO برای همکاری با SSSD (CONFIGURING SUDO TO COOPERATE WITH SSSD)
برای فعالسازی SSSD به عنوان منبع قوانین sudo، مقدار sss را به مدخل sudoers در nsswitch.conf(5) اضافه کنید.
بهعنوان مثال، برای پیکربندی sudo به منظور جستجوی قوانین ابتدا در پرونده استاندارد sudoers(5) (که باید حاوی قوانین اعمالشده بر کاربران محلی باشد) و سپس در SSSD، پرونده nsswitch.conf باید حاوی خط زیر باشد:
sudoers: files sss
اطلاعات بیشتر درباره پیکربندی ترتیب جستجوی sudoers از طریق پرونده nsswitch.conf و همچنین اطلاعات مربوط به طرحواره (schema) پروتکل LDAP که برای ذخیره قوانین sudo در دایرکتوری استفاده میشود، در sudoers.ldap(5) یافت میشود.
نکته: برای استفاده از netgroupها یا hostgroupهای IPA در قوانین sudo، همچنین باید مقدار nisdomainname(1) را به درستی روی نام دامنه NIS خود (که هنگام استفاده از hostgroupها برابر با نام دامنه IPA است) تنظیم کنید.
پیکربندی SSSD برای واکشی قوانین SUDO (CONFIGURING SSSD TO FETCH SUDO RULES)
تمام پیکربندی مورد نیاز در سمت SSSD، گسترش فهرست services با افزودن "sudo" در بخش [sssd] از sssd.conf(5) است. برای تسریع در جستجوهای LDAP، همچنین میتوانید پایگاه جستجو (search base) برای قوانین sudo را با استفاده از گزینه ldap_sudo_search_base تعیین کنید.
مثال زیر نحوه پیکربندی SSSD برای دریافت قوانین sudo از یک سرور LDAP را نشان میدهد.
[sssd] services = nss, pam, sudo domains = EXAMPLE [domain/EXAMPLE] id_provider = ldap sudo_provider = ldap ldap_uri = ldap://example.com ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
لازم به ذکر است در پلتفرمهایی که systemd پشتیبانی میشود، نیازی به افزودن ارائهدهنده "sudo" به فهرست سرویسها نیست، زیرا اختیاری شده است. با این حال، باید sssd-sudo.socket فعال گردد.
هنگامی که SSSD طوری پیکربندی شده باشد که از IPA به عنوان ارائهدهنده شناسه (ID provider) استفاده کند، ارائهدهنده sudo بهطور خودکار فعال میشود. پایگاه جستجوی sudo طوری پیکربندی شده که از درخت بومی LDAP در IPA استفاده کند (cn=sudo,$SUFFIX). اگر پایگاه جستجوی دیگری در sssd.conf تعریف شده باشد، آن مقدار به جای این مورد استفاده خواهد شد. درخت سازگاری (ou=sudoers,$SUFFIX) دیگر برای کارکرد sudo در IPA الزامی نیست.
سازوکار ذخیرهسازی موقت قوانین SUDO (THE SUDO RULE CACHING MECHANISM)
بزرگترین چالش هنگام توسعه پشتیبانی از sudo در SSSD، اطمینان از این بود که اجرای sudo با SSSD به عنوان منبع داده، همان تجربه کاربری و سرعت پیشین sudo را حفظ کند و در عین حال بهروزترین مجموعه قوانین ممکن را ارائه دهد. برای برآورده کردن این نیازمندیها، SSSD از سه نوع بهروزرسانی استفاده میکند که به عنوان نوسازی کامل (full refresh)، نوسازی هوشمند (smart refresh) و نوسازی قوانین (rules refresh) شناخته میشوند.
فرآیند nوسازی هوشمند (smart refresh) به صورت دورهای قوانینی را دانلود میکند که جدید بوده یا پس از آخرین بهروزرسانی تغییر یافتهاند. هدف اصلی آن حفظ رشد تدریجی پایگاهداده با دریافت مقادیر افزایشی کوچک است تا ترافیک شبکه زیادی ایجاد نشود.
فرآیند nوسازی کامل (full refresh) به سادگی تمام قوانین sudo ذخیرهشده در حافظه موقت (cache) را حذف کرده و آنها را با تمام قوانین موجود در سرور جایگزین میکند. این کار برای حفظ یکپارچگی حافظه موقت با حذف هر قانونی که از سرور پاک شده است، انجام میشود. با این حال، نوسازی کامل ممکن است ترافیک زیادی ایجاد کند و بنابراین بسته به اندازه و پایداری قوانین sudo، تنها باید گهگاه اجرا شود.
فرآیند nوسازی قوانین (rules refresh) تضمین میکند که مجوزی بیش از آنچه تعریف شده است به کاربر اعطا نشود. این نوسازی با هر بار اجرای sudo توسط کاربر آغاز میشود. نوسازی قوانین تمام قوانین مربوط به این کاربر را پیدا کرده، زمان انقضای آنها را بررسی میکند و در صورت انقضا دوباره آنها را دانلود مینماید. در صورتی که هر یک از این قوانین در سرور مفقود باشند، SSSD یک نوسازی کامل خارج از نوبت انجام خواهد داد، زیرا ممکن است قوانین بیشتری (مرتبط با سایر کاربران) حذف شده باشند.
در صورت فعال بودن، SSSD تنها قوانینی را ذخیره میکند که میتوانند روی این ماشین اعمال شوند. این به معنای قوانینی است که حاوی یکی از مقادیر زیر در مشخصه sudoHost باشند:
گزینههای پیکربندی بسیاری برای تنظیم این رفتار وجود دارند. لطفاً به "ldap_sudo_*" در sssd-ldap(5) و "sudo_*" در sssd.conf(5) مراجعه کنید.
تنظیم کارایی و عملکرد (TUNING THE PERFORMANCE)
ابزار SSSD از سازوکارهای مختلفی با فیلترهای کموبیش پیچیده LDAP استفاده میکند تا قوانین کششده sudo را بهروز نگه دارد. پیکربندی پیشفرض روی مقادیری تنظیم شده که باید اکثر نیازهای کاربران ما را برآورده سازد، اما بندهای زیر حاوی چند نکته برای تنظیم دقیق پیکربندی مطابق با نیازهای شما هستند.
۱. شاخصگذاری مشخصههای LDAP. اطمینان حاصل کنید که این مشخصههای LDAP شاخصگذاری (index) شدهاند: objectClass, cn, entryUSN یا modifyTimestamp.
۲. تنظیم ldap_sudo_search_base. برای محدود کردن دامنه جستجو، پایگاه جستجو را روی ظرفی تنظیم کنید که قوانین sudo را نگهداری میکند.
۳. تنظیم بازه نوسازی کامل و هوشمند. اگر قوانین sudo شما اغلب تغییر نمیکنند و نیازی به بهروزرسانی سریع قوانین کششده در کلاینتهای خود ندارید، میتوانید افزایش مقادیر ldap_sudo_full_refresh_interval و ldap_sudo_smart_refresh_interval را در نظر بگیرید. همچنین میتوانید با تنظیم ldap_sudo_smart_refresh_interval = 0 نوسازی هوشمند را غیرفعال کنید.
۴. اگر تعداد زیادی کلاینت دارید، میتوانید افزایش مقدار ldap_sudo_random_offset را برای توزیع بهتر بار روی سرور در نظر بگیرید.
همچنین ببینید (SEE ALSO)
sssd(8), sssd.conf(5), sssd-ldap(5), sssd-ldap-attributes(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-idp(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(1), sss_ssh_knownhosts(1), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)
نویسندگان (AUTHORS)
توسعهدهندگان بالادستی SSSD - https://github.com/SSSD/sssd/
| 06/09/2026 | SSSD |