KADM5.ACL(5) MIT Kerberos KADM5.ACL(5)

kadm5.acl - فایل کنترل دسترسی (ACL) سرور مدیریت کربروس ۵

دیمن کربروس kadmind از یک فایل فهرست کنترل دسترسی (ACL) برای مدیریت حقوق دسترسی به پایگاه‌داده کربروس استفاده می‌کند. برای عملیاتی که بر شناسه‌های اصلی (principals) تأثیر می‌گذارند، فایل ACL همچنین تعیین می‌کند که کدام شناسه‌های اصلی می‌توانند بر روی چه شناسه‌های اصلی دیگری عملیات انجام دهند.

مکان پیش‌فرض فایل ACL کربروس /var/lib/krb5kdc/kadm5.acl است، مگر آنکه این مسیر با متغیر acl_file در kdc.conf تغییر داده شود.

خطوط خالی و خطوطی که با علامت شارپ (#) آغاز می‌شوند نادیده گرفته می‌شوند. خطوط حاوی مدخل‌های ACL قالب زیر را دارند:

principal  permissions  [target_principal  [restrictions] ]

نکته:

ترتیب خطوط در فایل ACL حائز اهمیت است. اولین مدخل منطبق، دسترسی یک شناسه اصلی کنشگر (actor principal) را بر روی یک شناسه اصلی هدف (target principal) کنترل خواهد کرد.
(نام شناسه اصلی کربروس به صورت کامل یا جزئی.) شناسه اصلی‌ای را مشخص می‌کند که دسترسی‌های آن قرار است تنظیم شوند.

هر بخش از نام می‌تواند با استفاده از نویسه * به صورت نویسه عمومی (wildcard) تعیین شود.

مشخص می‌کند چه عملیاتی ممکن است توسط یک principal منطبق بر یک مدخل خاص انجام پذیرد یا پذیرفته نشود. این یک رشته از یک یا چند نویسه از فهرست زیر یا معادل‌های حروف بزرگ (upper-case) آن‌ها است. اگر نویسه به صورت حرف بزرگ باشد، عملیات غیرمجاز است. اگر نویسه به صورت حرف کوچک باشد، عملیات مجاز است.
a مجاز [یا غیرمجاز] کردن افزودن شناسه‌های اصلی یا خط‌مشی‌ها
c مجاز [یا غیرمجاز] کردن تغییر گذرواژه‌های شناسه‌های اصلی
d مجاز [یا غیرمجاز] کردن حذف شناسه‌های اصلی یا خط‌مشی‌ها
e مجاز [یا غیرمجاز] کردن استخراج کلیدهای شناسه اصلی
i مجاز [یا غیرمجاز] کردن استعلام و پرس‌وجو درباره شناسه‌های اصلی یا خط‌مشی‌ها
l مجاز [یا غیرمجاز] کردن فهرست کردن تمامی شناسه‌های اصلی یا خط‌مشی‌ها
m مجاز [یا غیرمجاز] کردن ویرایش و اصلاح شناسه‌های اصلی یا خط‌مشی‌ها
p مجاز [یا غیرمجاز] کردن انتشار پایگاه‌داده شناسه‌های اصلی (مورد استفاده در انتشار تدریجی پایگاه‌داده)
s مجاز [یا غیرمجاز] کردن تنظیم صریح کلید برای یک شناسه اصلی
x کوتاه‌شده admcilsp. تمام امتیازات (به جز e)
* مشابه x.

نکته:

امتیاز extract (استخراج) در امتیاز نویسه عمومی (wildcard) گنجانده نشده است؛ این امتیاز باید صریحاً تخصیص یابد. این امتیاز به کاربر اجازه می‌دهد کلیدها را از پایگاه‌داده استخراج کند، و باید با دقت و احتیاط فراوان مدیریت شود تا از افشای کلیدهای مهم مانند کلیدهای شناسه‌های اصلی kadmin/* یا krbtgt/* جلوگیری گردد. صفت lockdown_keys شناسه اصلی می‌تواند برای جلوگیری از استخراج کلید از شناسه‌های اصلی خاص، بدون در نظر گرفتن امتیاز اعطاشده، استفاده شود.
(اختیاری. نام شناسه اصلی کربروس به صورت کامل یا جزئی.) شناسه اصلی‌ای را مشخص می‌کند که permissions می‌تواند بر روی آن اعمال شود. هر جزء از نام می‌تواند با استفاده از نویسه * به صورت نویسه عمومی تعیین شود.

target_principal همچنین می‌تواند شامل ارجاع به عقب (back-reference) به principal باشد، که در آن *number با نویسه عمومی متناظر در principal مطابقت پیدا می‌کند.

(اختیاری) رشته‌ای از پرچم‌ها (flags). محدودیت‌های مجاز عبارتند از:
{+|-}flagname
پرچم به مقدار مشخص‌شده تحمیل می‌شود. پرچم‌های مجاز همان مواردی هستند که برای متغیر default_principal_flags در kdc.conf تعریف شده‌اند.
خط‌مشی اجباراً خالی تنظیم می‌شود.
خط‌مشی اجباراً به pol تنظیم می‌شود.
-{expire, pwexpire, maxlife, maxrenewlife} time
(رشته زمان getdate.) مقدار مربوطه به MIN(time, مقدار درخواستی) تحمیل خواهد شد.

پرچم‌های فوق به عنوان محدودیت بر روی هرگونه عملیات افزودن یا ویرایش که به دلیل آن خط ACL مجاز شده است عمل می‌کنند.

هشدار:

اگر فایل ACL مربوط به kadmind تغییر داده شود، دیمن kadmind باید برای اعمال تغییرات مجدداً راه‌اندازی (restart) شود.

در اینجا نمونه‌ای از یک فایل kadm5.acl آورده شده است:

*/admin@ATHENA.MIT.EDU    *                               # line 1
joeadmin@ATHENA.MIT.EDU   ADMCIL                          # line 2
joeadmin/*@ATHENA.MIT.EDU i   */root@ATHENA.MIT.EDU       # line 3
*/root@ATHENA.MIT.EDU     ci  *1@ATHENA.MIT.EDU           # line 4
*/root@ATHENA.MIT.EDU     l   *                           # line 5
sms@ATHENA.MIT.EDU        x   * -maxlife 9h -postdateable # line 6

(خط ۱) هر شناسه اصلی در قلمرو ATHENA.MIT.EDU با نمونه (instance) admin دارای تمام امتیازات مدیریتی به جز استخراج کلیدها است.

(خطوط ۱-۳) کاربر joeadmin با نمونه admin خود، یعنی joeadmin/admin@ATHENA.MIT.EDU دارای تمام دسترسی‌ها به جز استخراج کلیدها است (منطبق بر خط ۱). او با نمونه تهی (null instance) خود، یعنی joeadmin@ATHENA.MIT.EDU هیچ دسترسی‌ای ندارد (منطبق بر خط ۲). نمونه‌های root و سایر نمونه‌های غیر-admin و غیرتهی او (مانند extra یا dbadmin) دسترسی استعلام (inquire) بر روی هر شناسه اصلی با نمونه root را دارا هستند (منطبق بر خط ۳).

(خط ۴) هر شناسه اصلی root در ATHENA.MIT.EDU می‌تواند از نمونه تهی خود استعلام گرفته یا گذرواژه آن را تغییر دهد، اما نه هیچ نمونه تهی دیگری. (در اینجا، *1 بیانگر ارجاع به عقب به بخشی است که با اولین نویسه عمومی در شناسه اصلی کنشگر مطابقت دارد.)

(خط ۵) هر شناسه اصلی root در ATHENA.MIT.EDU می‌تواند فهرست شناسه‌های اصلی موجود در پایگاه‌داده و فهرست خط‌مشی‌های موجود در پایگاه‌داده را ایجاد کند. این خط از خط ۴ جدا است، زیرا دسترسی فهرست‌گیری فقط می‌تواند به صورت سراسری اعطا شود، نه به شناسه‌های اصلی هدف مشخص.

(خط ۶) در نهایت، شناسه اصلی سامانه مدیریت خدمات sms@ATHENA.MIT.EDU دارای تمام دسترسی‌ها به جز استخراج کلیدها است، اما هر شناسه اصلی که ایجاد یا ویرایش کند، نمی‌تواند بلیت‌های پس‌تاریخ‌گذاری‌شده یا بلیت‌هایی با طول عمر بیش از ۹ ساعت دریافت نماید.

فایل ACL در نسخه ۱.۱۶ و بالاتر، همان‌طور که در بخش رابط kadm5_auth از krb5.conf پیکربندی شده است، می‌تواند با سایر ماژول‌های احراز مجوز همزیستی داشته باشد. فایل ACL بر اساس قواعد فوق عملیات را به صورت ایجابی مجاز می‌کند، اما هرگز عملیاتی را به طور قطعی رد نمی‌کند، بنابراین سایر ماژول‌ها می‌توانند علاوه بر عملیات مجازشده توسط فایل ACL، عملیات دیگری را نیز مجاز نمایند.

برای کارکرد بدون فایل ACL، متغیر acl_file در kdc.conf را با دستور acl_file = "" روی یک رشته خالی تنظیم کنید.

kdc.conf(5), kadmind(8)

مؤسسه فناوری ماساچوست (MIT)

1985-2026, MIT

1.22.2