| MASTER(5) | File Formats Manual | MASTER(5) |
نام (NAME)
master - قالب پرونده پیکربندی فرایند master در Postfix
توضیحات (DESCRIPTION)
سامانه ایمیل Postfix از تعداد اندکی دستورهای کاربری (غالباً کلاینت) و تعداد بیشتری سرویس که در پسزمینه اجرا میشوند، تشکیل شده است.
سرویسهای Postfix توسط فرایندهای دیمن (daemon) پیادهسازی میشوند. این فرایندها در پسزمینه اجرا شده و در صورت نیاز توسط فرایند master(8) آغاز به کار میکنند. پرونده پیکربندی master.cf مشخص میکند که یک برنامه کلاینت چگونه به یک سرویس متصل شود و هنگام درخواست یک سرویس، چه برنامه دیمنی اجرا گردد. اکثر فرایندهای دیمن کوتاهعمر هستند و پس از سرویسدهی به max_use کلاینت، یا پس از غیرفعال بودن به مدت max_idle واحد زمانی یا بیشتر، به صورت داوطلبانه خاتمه مییابند.
تمام دیمنهای مشخصشده در اینجا باید به پروتکل داخلی Postfix صحبت کنند. برای اجرای نرمافزارهای غیر Postfix، از سرویسهای local(8)، pipe(8) یا spawn(8) استفاده کنید، یا نرمافزار را با inetd(8) یا معادل آن اجرا نمایید.
پس از تغییر master.cf باید دستور «postfix reload» را اجرا کنید تا پیکربندی مجدداً بارگذاری شود.
ساختار (SYNTAX)
قالب کلی پرونده master.cf به شرح زیر است:
- خطوط خالی و خطوطی که فقط شامل فاصلههای خالی هستند نادیده گرفته میشوند، همانند خطوطی که اولین نویسه غیرفاصله آنها کاراکتر «#» است.
- یک خط منطقی با متنی غیر از نویسههای فاصله آغاز میشود. خطی که با نویسه فاصله آغاز شود، ادامه یک خط منطقی پیشین است.
- هر خط منطقی یک سرویس Postfix منفرد را تعریف میکند. هر سرویس با نام و نوع خود مطابق توضیحات زیر شناسایی میشود. زمانی که چندین خط نام و نوع سرویس یکسانی را مشخص کنند، فقط آخرین خط لحاظ میگردد. در غیر این صورت، ترتیب تعاریف سرویس در master.cf اهمیتی ندارد.
هر خط منطقی شامل هشت فیلد است که با نویسههای فاصله از یکدیگر جدا شدهاند. این فیلدها به ترتیبی که در پرونده master.cf ظاهر میشوند در زیر شرح داده شدهاند.
در صورت امکان، استفاده از مقدار «-» در یک فیلد درخواست میکند که از مقدار پیشفرض داخلی استفاده شود. برای فیلدهای بولی (boolean)، مقدار «y» یا «n» را برای لغو مقدار پیشفرض مشخص کنید.
- Service name
- ساختار نام سرویس به نوع سرویس بستگی دارد، همانطور که در ادامه توضیح داده شده است.
- Service type
- یکی از انواع سرویسهای زیر را مشخص کنید:
- inet
- سرویس روی
سوکت TCP/IP گوش
میدهد و از
طریق شبکه
قابل
دسترسی است.
نام سرویس به صورت host:port مشخص میشود که بیانگر میزبان و درگاهی است که اتصالات جدید باید روی آن پذیرفته شوند. بخش میزبان (و دونقطه) را میتوان حذف کرد. میزبان یا درگاه را میتوان به شکل نمادین (رجوع کنید به hosts(5) یا services(5)) یا به صورت عددی (آدرس IP یا شماره درگاه) مشخص نمود. اطلاعات میزبان میتواند داخل «[]» قرار گیرد؛ این قالب تنها برای آدرسهای IPv6 الزامی است.
مثالها: سرویسی به نام 127.0.0.1:smtp یا ::1:smtp ایمیل را تنها از طریق رابط loopback دریافت میکند؛ و سرویسی با نام 10025 اتصالات را روی درگاه TCP شماره 10025 از طریق تمام رابطهای پیکربندیشده با پارامتر inet_interfaces میپذیرد.
نکته: در نسخه 2.2 و بالاتر Postfix، به جای نوشتن مستقیم اطلاعات آدرس IP رابط loopback در master.cf یا main.cf، مقدار «inet_interfaces = loopback-only» را در main.cf مشخص کنید.
- unix
- سرویس روی
یک سوکت
استریم
یونیکس (UNIX-domain stream
socket) گوش
میدهد و
تنها برای
کلاینتهای
محلی در
دسترس است.
نام سرویس یک مسیر نسبی به دایرکتوری صف Postfix است (مسیری که با پارامتر پیکربندی queue_directory در main.cf کنترل میشود).
در سیستمهای Solaris 8 و نسخههای پیش از آن، نوع unix با سوکتهای streams پیادهسازی میشود.
- unix-dgram
- سرویس روی
یک سوکت
دیتاگرام
یونیکس (UNIX-domain datagram
socket) گوش
میدهد و
تنها برای
کلاینتهای
محلی در
دسترس است.
نام سرویس یک مسیر نسبی به دایرکتوری صف Postfix است (مسیری که با پارامتر پیکربندی queue_directory در main.cf کنترل میشود).
- fifo (منسوخ)
- سرویس روی
یک FIFO (لوله
نامگذاریشده
یا named pipe) گوش
میدهد و
تنها برای
کلاینتهای
محلی در
دسترس است.
نام سرویس یک مسیر نسبی به دایرکتوری صف Postfix است (مسیری که با پارامتر پیکربندی queue_directory در main.cf کنترل میشود).
- pass
- سرویس روی
یک سوکت
استریم
یونیکس گوش
میدهد و
تنها برای
کلاینتهای
محلی در
دسترس است.
این سرویس
به ازای هر
درخواست
اتصال، یک
اتصال باز
(انتقال
توصیفگر
فایل یا file descriptor passing)
دریافت
میکند.
نام سرویس یک مسیر نسبی به دایرکتوری صف Postfix است (مسیری که با پارامتر پیکربندی queue_directory در main.cf کنترل میشود).
در سیستمهای Solaris 8 و نسخههای پیش از آن، نوع pass با سوکتهای streams پیادهسازی میشود.
این قابلیت از نسخه 2.5 به بعد Postfix در دسترس است.
- Private (پیشفرض: y)
- آیا سرویس درون خود Postfix اختصاصی و داخلی است (مسیر با private/ آغاز میشود)، یا از طریق ابزارهای خط فرمان Postfix عمومی و دردسترس است (مسیر با public/ آغاز میشود). سرویسهای اینترنتی (نوع inet) نمیتوانند اختصاصی (private) باشند.
- Unprivileged (پیشفرض: y)
- آیا سرویس
با
دسترسیهای
ریشه (root) اجرا
میشود یا
با شناسه
مالک
سامانه Postfix
(نام مالک
توسط متغیر
پیکربندی
mail_owner در
پرونده main.cf
کنترل
میشود).
دیمنهای local(8)، pipe(8)، spawn(8) و virtual(8) نیازمند دسترسیهای مدیریتی (امتیازات ویژه) هستند.
- Chroot (پیشفرض: Postfix >= 3.0: n, Postfix < 3.0: y)
- آیا سرویس
به صورت chroot در
دایرکتوری
صف ایمیل
اجرا شود یا
خیر (مسیر
توسط متغیر
پیکربندی
queue_directory در
پرونده main.cf
کنترل
میشود).
فرایند chroot نباید برای دیمنهای local(8)، pipe(8)، spawn(8) و virtual(8) استفاده شود. اگرچه سرور proxymap(8) میتواند به صورت chrooted اجرا شود، اما انجام این کار هدف اصلی وجود آن سرویس را از بین میبرد.
پروندههای موجود در زیردایرکتوری examples/chroot-setup از سورسکد Postfix نشان میدهند که چگونه یک محیط chroot برای Postfix در انواع سیستمها برپا شود. همچنین به BASIC_CONFIGURATION_README برای موارد مربوط به اجرای دیمنها به صورت chroot مراجعه فرمایید.
- Wake up time (پیشفرض: 0)
- بیدارباش
خودکار
سرویس
مشخصشده
پس از گذشت
تعداد
ثانیههای
معین.
بیدارباش
با برقراری
اتصال به
سرویس و
ارسال
درخواست wake up
انجام
میشود. درج
علامت ؟ در
پایان فیلد
wake-up time تعیین
میکند که
پیش از
اولین بار
استفاده از
سرویس، هیچ
رویداد
بیدارباشی
ارسال نشود.
برای
غیرفعال
کردن
بیدارباش
خودکار،
مقدار 0 را
مشخص کنید.
دیمنهای pickup(8)، qmgr(8) و flush(8) به زمانسنج بیدارباش (wake up timer) نیاز دارند.
- Process limit (پیشفرض: $default_process_limit)
- حداکثر
تعداد
فرایندهایی
که
میتوانند
همزمان
این سرویس
را اجرا
کنند. برای
نداشتن
محدودیت در
تعداد
فرایند،
مقدار 0 را
مشخص کنید.
نکته: برخی سرویسهای Postfix باید به عنوان سرویس تکفرایندی پیکربندی شوند (مانند qmgr(8)) و برخی سرویسها باید بدون محدودیت در تعداد فرایند پیکربندی شوند (مانند cleanup(8)). این محدودیتها نباید تغییر داده شوند.
- Command name + arguments
- دستوری که
باید اجرا
شود.
نویسههایی
که برای
پوسته (shell) خاص
هستند،
مانند «>»
یا «|»، در
اینجا هیچ
معنای خاصی
ندارند، و
برای
محافظت از
آرگومانهای
حاوی
نویسههای
فاصله
نمیتوان
از نقلقول
(کوتیشن)
استفاده
کرد. برای
محافظت از
فاصلهها،
مطابق
توضیحات
زیر از «{» و
«}» استفاده
کنید.
نام دستور نسبت به دایرکتوری دیمنهای Postfix در نظر گرفته میشود (مسیر توسط متغیر پیکربندی daemon_directory کنترل میشود).
ساختار آرگومانهای دستور برای هر دستور بهخصوص در صفحه راهنمای دیمن مربوط به آن آورده شده است.
گزینههای خط فرمان زیر تأثیر یکسانی روی تمامی برنامههای دیمن دارند:
- -D
- اجرای دیمن تحت کنترل دستوری که با متغیر debugger_command در پرونده پیکربندی main.cf مشخص شده است. برای نکات و راهنماییها به DEBUG_README مراجعه کنید.
- -o { name = value } (حالت کامل، Postfix >= 3.0)
- لغو و
بازنویسی
پارامتر
پیکربندی
نامبرده
در main.cf. مقدار
پارامتر
میتواند
همانند main.cf به
پارامترهای
دیگر به
صورت $name و
غیره ارجاع
دهد. برای
ساختار
نحوی به postconf(5)
مراجعه
کنید.
«حالت کامل» (long form) از نویسههای فاصله در مقادیر پارامتر پشتیبانی میکند. فاصلههای پس از «{» بیرونی، در اطراف «=» و پیش از «}» بیرونی نادیده گرفته میشوند. مثال:
/etc/postfix/master.cf: submission inet .... smtpd -o { smtpd_xxx_yyy = text with whitespace... }نکته: زیادهروی در بازنویسی پارامترها باعث میشود پیکربندی Postfix برای فهم و نگهداری دشوار شود. از نقطهای به بعد، ممکن است پیکربندی چند نمونه (instance) مجزا از Postfix، به جای پیکربندی چندین رفتار متفاوت از طریق master.cf، آسانتر باشد.
- -o name=value (حالت کوتاه)
- لغو و
بازنویسی
پارامتر
پیکربندی
نامبرده
در main.cf. مقدار
پارامتر
میتواند
همانند main.cf به
پارامترهای
دیگر به
صورت $name و
غیره ارجاع
دهد. برای
ساختار
نحوی به postconf(5)
مراجعه
کنید.
«حالت کوتاه» (short form) از نویسههای فاصله در اطراف «=» یا درون مقادیر پارامتر پشتیبانی نمیکند. برای تعیین مقدار پارامتری که حاوی نویسههای فاصله است، از حالت کامل شرحدادهشده در بالا استفاده کنید، یا در صورتی که پارامتر پشتیبانی میکند از کاما به جای فاصله استفاده نمایید، یا مقدار را در main.cf مشخص کنید. مثال:
/etc/postfix/master.cf: submission inet .... smtpd -o smtpd_xxx_yyy=$submission_xxx_yyy /etc/postfix/main.cf submission_xxx_yyy = text with whitespace...نکته: زیادهروی در بازنویسی پارامترها باعث میشود پیکربندی Postfix برای فهم و نگهداری دشوار شود. از نقطهای به بعد، ممکن است پیکربندی چند نمونه (instance) مجزا از Postfix، به جای پیکربندی چندین رفتار متفاوت از طریق master.cf، آسانتر باشد.
- -v
- افزایش سطح گزارشگیری با جزئیات (verbose). تعیین چندباره گزینه -v باعث میشود فرایند دیمن Postfix خروجی با جزئیات بیشتری تولید کند.
- Command-line arguments that start with {
- Command-line arguments that contain whitespace
- Command-line arguments that must be empty
- اطراف چنین آرگومانهایی از «{» و «}» استفاده کنید (Postfix نسخه 3.0 و جدیدتر). علامتهای «{» و «}» بیرونی همراه با هرگونه فاصله ابتدا و انتها در متن باقیمانده حذف خواهند شد.
همچنین ببینید (SEE ALSO)
master(8), process manager postconf(5), configuration parameters
پروندههای راهنما (README FILES)
برای یافتن این اطلاعات از «postconf readme_directory» یا «postconf html_directory» استفاده کنید.
BASIC_CONFIGURATION_README, basic configuration DEBUG_README, Postfix debugging
مجوز (LICENSE)
مجوز نرمافزار امنیتی Secure Mailer باید به همراه این نرمافزار توزیع شود.
نویسندگان (AUTHORS)
Initial version by Magnus Baeck Lund Institute of Technology Sweden Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA