DOVEADM-ACL(1) Dovecot DOVEADM-ACL(1)

doveadm-acl - مدیریت فهرست‌های کنترل دسترسی (ACL)

doveadm [-Dv] [-f formatter] acl command [OPTIONS] [ARGUMENTS]

از دستورات doveadm acl می‌توان برای اجرای اقدامات گوناگون مرتبط با فهرست‌های کنترل دسترسی (ACL) استفاده کرد.

گزینه‌های عمومی doveadm(1):

پیام‌های اشکال‌زدایی (debug) و پرگویی را فعال می‌کند.
قالب‌بند (formatter) را برای قالب‌بندی خروجی مشخص می‌کند. قالب‌بندهای پشتیبانی‌شده عبارتند از:
هر سطر را با جفت‌های key=value چاپ می‌کند.
هر جفت key: value را در یک سطر جداگانه چاپ کرده و رکوردها را با نویسهٔ فرم‌فید (^L) از هم جدا می‌کند.
یک سربرگ جدول و به دنبال آن سطرهای حاوی مقادیر جداشده با تب (tab) را چاپ می‌کند.
یک سربرگ جدول و به دنبال آن سطرهایی با مقادیر تراز‌شده چاپ می‌کند.
تنظیم پیکربندی setting را از /etc/dovecot/dovecot.conf و از userdb با مقدار داده‌شدهٔ value بازنویسی می‌کند. جهت بازنویسی چندین تنظیم، می‌توان گزینهٔ -o را چندین بار مشخص کرد.
پرگویی، شامل شمارندهٔ پیشرفت را فعال می‌کند.

این دستور به‌طور پیش‌فرض از قالب‌بند خروجی table استفاده می‌کند.

گزینه‌های ویژهٔ این دستور:

اگر گزینهٔ -A مشخص شود، دستور برای همهٔ کاربران اجرا خواهد شد. استفاده از این گزینه همراه با کاربران سیستمیِ userdb { driver = passwd } توصیه نمی‌شود، زیرا شامل کاربرانی با UID کمتر از مقدار پیکربندی‌شده در تنظیم first_valid_uid نیز می‌شود.

هنگامی که از ماژول SQL userdb استفاده می‌شود، اطمینان حاصل کنید که تنظیم iterate_query در /etc/dovecot/dovecot-sql.conf.ext با ساختار پایگاه داده شما مطابقت دارد. هنگام استفاده از ماژول LDAP userdb، اطمینان حاصل کنید که تنظیمات iterate_attrs و iterate_filter در /etc/dovecot/dovecot-ldap.conf.ext با طرحوارهٔ (schema) LDAP شما مطابقت دارند؛ در غیر این صورت doveadm(1) قادر به پیمایش روی تمام کاربران نخواهد بود.

دستور را برای تمام کاربران موجود در file اجرا می‌کند. این مشابه گزینهٔ -A است، اما به‌جای دریافت فهرست کاربران از userdb، آن‌ها از file داده‌شده خوانده می‌شوند. این file در هر سطر شامل یک نام کاربری است.
آرگومان این گزینه یا یک مسیر مطلق به یک سوکت محلی دامنه یونیکس است، یا یک نام میزبان و درگاه (hostname:port)، جهت اتصال به یک میزبان دوردست از طریق سوکت TCP.

این گزینه به مدیر سیستم اجازه می‌دهد دستورات ایمیل doveadm(1) را از طریق سوکت داده‌شده اجرا کند.

دستور را تنها برای کاربر (user) داده‌شده اجرا می‌کند. همچنین امکان استفاده از نویسه‌های عام '*' و '?' وجود دارد (مانند -u *@example.org).
چنانچه هیچ‌کدام از گزینه‌های -A، -F file یا -u user مشخص نشوند، دستور با محیط کاربریِ کاربری که در حال حاضر وارد سیستم شده است اجرا خواهد شد.
شناسه (id) یکی از موارد زیر است:
*
group-override=group_name
*
user=user_name
*
owner
*
group=group_name
*
authenticated
*
anyone (یا anonymous که نام مستعاری برای anyone است)

مجوزهای ACL به ترتیبی که در بالا ذکر شده اولویت‌بندی و پردازش می‌شوند؛ بنابراین برای مثال اگر به یک گروه دسترسی خواندن داده باشید، همچنان می‌توانید آن دسترسی را برای کاربران خاصی درون آن گروه لغو کنید.
شناسهٔ group-override به شما امکان می‌دهد ACLهای کاربران را بازنویسی (override) کنید. احتمالاً مفیدترین کاربرد آن، غیرفعال کردن موقت دسترسی برای برخی کاربران است. برای مثال:

user=timo rw
group-override=tempdisabled

اکنون اگر timo عضوی از گروه tempdisabled باشد، هیچ دسترسی به صندوق پستی نخواهد داشت. این امر با یک شناسهٔ معمولی group امکان‌پذیر نبود، زیرا user=timo بر آن اولویت پیدا می‌کرد.

نام صندوق پستی که عملیات ACL باید روی آن انجام شود. همچنین امکان استفاده از نویسه‌های عام "*" و/یا "?" در نام صندوق پستی وجود دارد.
نام حق دسترسی ACL در Dovecot. این نام با حروف مجوزهای ACL در IMAP یکسان نیست، چرا که در حال حاضر حروف IMAP پشتیبانی نمی‌شوند. در اینجا جدول تطبیق حروف ACL در IMAP با نام‌های مجوز ACL در Dovecot آورده شده است:
صندوق پستی (Mailbox) در فهرست صندوق‌های پستی قابل مشاهده است. امکان اشتراک (subscribe) در صندوق پستی وجود دارد.
صندوق پستی را می‌توان برای خواندن باز کرد.
پرچم‌ها (flags) و کلیدواژه‌های پیام قابل تغییر هستند، به جز \Seen و \Deleted.
پرچم \Seen قابل تغییر است.
پرچم \Deleted قابل تغییر است.
پیام‌ها را می‌توان در mailbox نوشت یا در آن کپی کرد.
پیام‌ها می‌توانند توسط dovecot-lda (برای مثال از طریق اسکریپت‌های Sieve) به mailbox ارسال شوند.
پیام‌ها را می‌توان پاکسازی (expunge) کرد.
صندوق‌های پستی را می‌توان مستقیماً در زیر این mailbox ایجاد کرد یا تغییر نام داد (اما لزوماً نه در زیر زیرمجموعه‌های آن، بخش ACL Inheritance را در ویکی ببینید).
نکته: تغییر نام به حق دسترسی delete نیز نیاز دارد.
صندوق پستی (Mailbox) قابل حذف است.
حقوق مدیریت بر روی mailbox (در حال حاضر: قابلیت تغییر ACLها برای mailbox).

doveadm acl add [-u user|-A|-F file] [-S socket_path] mailbox id right [right ...]

حقوق دسترسی ACL را به mailbox/id اضافه می‌کند. اگر id از قبل وجود داشته باشد، حقوق دسترسی قبلی حفظ می‌شوند.

doveadm acl debug [-u user|-A|-F file] [-S socket_path] mailbox

این دستور می‌تواند برای اشکال‌زدایی دلیل عدم دسترسی کاربر به یک صندوق پستی به‌اشتراک‌گذاشته‌شده استفاده شود. این دستور دقیقاً مشکل موجود را فهرست می‌کند.

doveadm acl delete [-u user|-A|-F file] [-S socket_path] mailbox id

کل مدخل ACL را برای mailbox/id حذف می‌کند.

doveadm acl get [-u user|-A|-F file] [-S socket_path] [-m] mailbox

تمام ACLهای مربوط به mailbox را نمایش می‌دهد.

doveadm acl recalc [-u user|-A|-F file] [-S socket_path]

اطمینان حاصل می‌کند که صندوق‌های پستیِ به‌اشتراک‌گذاشته‌شدهٔ کاربر (user) به‌درستی در acl_shared_dict وجود دارند.

doveadm acl remove [-u user|-A|-F file] [-S socket_path] mailbox id right [right ...]

حقوق دسترسیِ ACL مشخص‌شده را از mailbox/id حذف می‌کند. اگر تمام حقوق دسترسی حذف شوند، مدخل همچنان بدون هیچ مجوزی باقی می‌ماند.

doveadm acl rights [-u user|-A|-F file] [-S socket_path] mailbox

حقوق دسترسی فعلی ACL کاربر (user) را برای mailbox نمایش می‌دهد.

doveadm acl set [-u user|-A|-F file] [-S socket_path] mailbox id right [right ...]

حقوق دسترسی ACL را برای mailbox/id تنظیم می‌کند. اگر id از قبل وجود داشته باشد، حقوق دسترسی موجود جایگزین می‌شوند. گزارش باگ‌ها، شامل خروجی doveconf -n را به فهرست پستی Dovecot به نشانی <dovecot@dovecot.org> ارسال کنید. اطلاعات درباره نحوه گزارش باگ‌ها در این نشانی در دسترس است: http://dovecot.org/bugreport.html

doveadm(1), dovecot-lda(1)

منابع تکمیلی:

توارث ACL (ACL Inheritance)
http://wiki2.dovecot.org/ACL#ACL_Inheritance
2015-05-09 Dovecot v2.3