| SPAWN(8) | System Manager's Manual | SPAWN(8) |
نام (NAME)
spawn - اجراکننده دستورات خارجی در Postfix
خلاصه دستور (SYNOPSIS)
spawn [generic Postfix daemon options] command_attributes...
توضیحات (DESCRIPTION)
دیمن spawn(8) بر یک سوکت جریانی (stream socket) از نوع TCP یا UNIX-domain که در master.cf با نوع سرویس inet یا unix پیکربندی شده است، نظارت میکند.
این دیمن هنگام برقراری هر اتصال، یک دستور خارجی را اجرا میکند (spawn)، بهطوری که توصیفکنندههای فایل ورودی، خروجی و خطای استاندارد آن به کلاینت راه دور متصل میشوند.
فرآیند دستور تابع محدودیت زمانی تعیینشده با پارامتر transport_time_limit (پیشفرض: command_time_limit) است که در آن transport برابر با فیلد نام سرویس در master.cf میباشد. فرآیندی که از این محدودیت زمانی فراتر رود، سیگنال SIGKILL دریافت خواهد کرد.
سرویس دیمن spawn(8) معمولاً در تعریف سرویس خود در master.cf دارای محدودیت فرآیند (process limit) بزرگتر از ۱ است، تا تعداد فرآیندها متناسب با تقاضا افزایش یابد.
نحو ویژگیهای دستور (COMMAND ATTRIBUTE SYNTAX)
ویژگیهای دستور خارجی در فایل master.cf در انتهای تعریف سرویس مشخص میشوند. نحو آن به شرح زیر است:
- user=username (الزامی)
- user=username:groupname
- دستور خارجی با دسترسیهای username مشخصشده اجرا میشود. نرمافزار از اجرای دستورات با دسترسیهای ریشه (root) یا با دسترسیهای مالک سامانه ایمیل خودداری میکند. اگر groupname مشخص شود، شناسه گروه (group ID) متناظر به جای شناسه گروه username استفاده میشود.
- argv=command... (الزامی)
- دستوری که
باید اجرا
شود. این
ویژگی باید
به عنوان
آخرین
ویژگی
دستور مشخص
گردد. دستور
مستقیماً
اجرا
میشود،
یعنی بدون
تفسیر
نویسههای
فرامعمول
شل (shell meta characters) توسط
یک مفسر
دستورات شل.
اگر یکی از آرگومانهای دستور باید حاوی فاصله سفید باشد، یا اگر یک آرگومان دستور باید با "{" آغاز شود، آرگومان را درون "{" و "}" محصور کنید. این قالب، فاصلههای سفید بعد از "{" بیرونی و قبل از "}" بیرونی را نادیده میگیرد. مثال:
argv=/bin/sh -c { shell syntax here }
عیبیابی (DIAGNOSTICS)
دیمن spawn(8) خروجهای غیرعادی فرآیندهای فرزند را گزارش میکند. مشکلات در syslogd(8) یا postlogd(8) ثبت میشوند.
امنیت (SECURITY)
دیمن spawn(8) برای اجرای دستورات خارجی در قالب کاربر مشخصشده، به دسترسی ریشه (root) نیاز دارد. بنابراین از نظر امنیتی حساس است.
با این حال، دیمن spawn(8) دادهای را از یا درباره کلاینتهای سرویس یا دستورات خارجی دریافت نمیکند، و بنابراین در برابر حملات مبتنی بر داده (data-driven) آسیبپذیر نیست.
پارامترهای پیکربندی (CONFIGURATION PARAMETERS)
تغییرات در main.cf بهطور خودکار اعمال میشوند، زیرا فرآیندهای spawn(8) تنها برای مدت زمان محدودی اجرا میگردند. برای تسریع در اعمال تغییرات از دستور "postfix reload" استفاده کنید.
متن زیر تنها خلاصهای از پارامترها را ارائه میدهد. برای جزئیات بیشتر شامل مثالها به postconf(5) مراجعه کنید.
در متن زیر، transport نخستین فیلد ورودی در فایل master.cf است.
کنترل منابع و نرخ (RESOURCE AND RATE CONTROL)
- transport_time_limit ($command_time_limit)
- یک مقدار جایگزین ویژه روش انتقال برای مقدار پارامتر command_time_limit، که در آن transport نام روش انتقال تحویل پیام در master.cf است.
متفرقه (MISCELLANEOUS)
- config_directory (خروجی 'postconf -d' را ببینید)
- مکان پیشفرض فایلهای پیکربندی main.cf و master.cf در Postfix.
- daemon_timeout (18000s)
- حداکثر زمانی که یک فرآیند دیمن Postfix مجاز است برای رسیدگی به یک درخواست صرف کند، پیش از آنکه توسط تایمر نگهبان داخلی (watchdog) متوقف شود.
- export_environment (خروجی 'postconf -d' را ببینید)
- فهرست متغیرهای محیطی که یک فرآیند Postfix به فرآیندهای غیر Postfix صادر میکند.
- ipc_timeout (3600s)
- محدودیت زمانی برای ارسال یا دریافت اطلاعات از طریق یک کانال ارتباطی داخلی.
- mail_owner (postfix)
- حساب کاربری یونیکس که مالک صف Postfix و اکثر فرآیندهای دیمن Postfix است.
- max_idle (100s)
- حداکثر مدت زمانی که یک فرآیند دیمن بیکار Postfix برای یک اتصال ورودی منتظر میماند پیش از آنکه به صورت داوطلبانه خاتمه یابد.
- max_use (100)
- حداکثر تعداد اتصالات ورودی که یک فرآیند دیمن Postfix پیش از توقف داوطلبانه به آنها سرویس میدهد.
- process_id (فقط-خواندنی)
- شناسه فرآیند (PID) یک دستور یا فرآیند دیمن Postfix.
- process_name (فقط-خواندنی)
- نام فرآیند یک دستور یا فرآیند دیمن Postfix.
- queue_directory (خروجی 'postconf -d' را ببینید)
- مکان دایرکتوری سطح بالای صف Postfix.
- syslog_facility (mail)
- تسهیلات syslog برای ثبت وقایع Postfix.
- syslog_name (خروجی 'postconf -d' را ببینید)
- پیشوندی که به ابتدای نام فرآیند در رکوردهای syslog افزوده میشود، بهطوری که برای مثال "smtpd" به "prefix/smtpd" تبدیل میشود.
موجود در Postfix نسخه 3.3 و بالاتر:
- service_name (فقط-خواندنی)
- نام سرویس در master.cf برای یک فرآیند دیمن Postfix.
همچنین ببینید (SEE ALSO)
postconf(5), configuration parameters master(8), process manager postlogd(8), Postfix logging syslogd(8), system logging
مجوز (LICENSE)
مجوز Secure Mailer باید همراه با این نرمافزار توزیع شود.
نویسندگان (AUTHORS)
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