سفارشی‌سازی گردش‌کار (Workflow) در DirectAdmin: هوک‌ها، کنترل دستورات، Feature Setها و مدیریت پلاگین‌ها

این مقاله یک راهنمای جامع برای سفارشی‌سازی رفتار DirectAdmin است. شامل استفاده از اسکریپت‌های pre/post، کنترل سطح دسترسی دستورات، ساخت و مدیریت Feature Setها، محدودسازی یا فعال‌سازی پلاگین‌ها، و نحوه اعمال این تنظیمات روی کاربران و پکیج‌ها. این ابزارها به مدیر سرور اجازه می‌دهند DirectAdmin را دقیقاً مطابق نیازهای خود تنظیم کند.

DirectAdmin customizationfeature setspre/post scripts

~4 دقیقه مطالعه · آخرین به‌روزرسانی ۱۰ اسفند ۱۴۰۴

1. مقدمه‌ای بر سفارشی‌سازی Workflow در DirectAdmin


DirectAdmin ابزارهای مختلفی برای تغییر ظاهر، رفتار و سطح دسترسی‌ها ارائه می‌دهد. این قابلیت‌ها به مدیر سرور اجازه می‌دهند کنترل پنل را دقیقاً مطابق نیازهای خود تنظیم کنند.


مهم‌ترین بخش‌های قابل سفارشی‌سازی عبارت‌اند از:


  • اسکریپت‌های pre/post (هوک‌ها)
  • فایل‌های commands.allow و commands.deny
  • Feature Setها
  • پلاگین‌ها و مدیریت سطح دسترسی آن‌ها

---

2. اسکریپت‌های Pre/Post (هوک‌ها)


DirectAdmin برای اکثر عملیات‌ها هوک‌هایی ارائه می‌دهد که می‌توانید قبل یا بعد از انجام یک کار، اسکریپت دلخواه خود را اجرا کنید.


2.1 رفتار اسکریپت‌ها


  • pre.sh قبل از انجام عملیات اجرا می‌شود
  • post.sh بعد از انجام عملیات اجرا می‌شود
  • اگر اسکریپت pre با کد غیر صفر خارج شود، DirectAdmin عملیات را متوقف می‌کند

مثال: اگر بخواهید هنگام ایجاد کاربر جدید، یک عملیات اضافی انجام شود، از user_create_post.sh استفاده می‌کنید.


DirectAdmin لیست کامل هوک‌ها را ارائه می‌دهد:


  • لیست کامل اسکریپت‌های *_post.sh
  • لیست کامل اسکریپت‌های *_pre.sh

---

3. کنترل دستورات با commands.allow و commands.deny


این فایل‌ها برای هر کاربر به صورت جداگانه قابل تنظیم هستند و مشخص می‌کنند چه دستورات DirectAdmin برای کاربر مجاز یا غیرمجاز باشد.


مزایا:


  • بدون نیاز به اسکریپت‌نویسی
  • کنترل ساده و سریع
  • قابل استفاده برای محدودسازی کاربران خاص

3.1 Login Keys


Login Keys امکان ایجاد چند رمز عبور برای یک حساب را می‌دهد، با قابلیت:


  • محدودسازی دستورات
  • محدودسازی IP
  • تاریخ انقضا
  • تعداد دفعات استفاده

---

4. Feature Sets


Feature Setها یک روش مدرن و قدرتمند برای کنترل سطح دسترسی کاربران هستند. برخلاف پکیج‌ها که محدودیت‌ها را کنترل می‌کنند، Feature Setها تعیین می‌کنند کاربر چه بخش‌هایی از DirectAdmin را می‌تواند ببیند یا اجرا کند.


4.1 ساختار Feature Set


در فایل user.conf یا پکیج‌ها، مقدار زیر اضافه می‌شود:


feature_sets=view_domain:tickets:dns_only

قوانین:


  • مقادیر با ":" جدا می‌شوند
  • مقادیر نامعتبر نادیده گرفته می‌شوند
  • مقدار خالی باعث حذف متغیر می‌شود

4.2 مسیر ذخیره‌سازی Feature Setها


مسیر پیش‌فرض:


/usr/local/directadmin/data/templates/feature_sets/

مسیر سفارشی:


/usr/local/directadmin/data/templates/custom/feature_sets/

4.3 Feature Setهای پیش‌فرض


  • dns_only — فقط مدیریت DNS
  • email_only — فقط امکانات ایمیل
  • tickets — سیستم پیام و تیکت
  • view_domain — امکانات پایه مثل مشاهده دامنه و تغییر رمز
  • core_functions — ترکیب view_domain + tickets

---

5. ساخت یک Feature Set سفارشی


5.1 ایجاد دایرکتوری


mkdir -p /usr/local/directadmin/data/templates/custom/feature_sets
cd /usr/local/directadmin/data/templates/feature_sets/
cp -rp core_functions ../custom/feature_sets/example_set

5.2 تعیین نام Feature Set


/usr/local/directadmin/data/templates/feature_sets/example_set/lang/en.name.txt

5.3 افزودن دستورات مجاز


فایل زیر را ویرایش کنید:


example_set/commands.allow

برای یافتن نام دستورات:


  • DirectAdmin را در حالت debug اجرا کنید
  • یا از API استفاده کنید:

curl -s $(da api-url --user=[DA_USER])/api/session | jq '.allowedCommands'

5.4 اعمال Feature Set


برای یک کاربر:


Admin Level → Show All Users → Modify → Feature Sets

برای یک پکیج:


Admin Level → Manage User Packages → Modify/Create → Feature Sets

---

6. پلاگین‌ها


پلاگین‌ها اسکریپت‌هایی هستند که امکانات جدیدی به DirectAdmin اضافه می‌کنند و با سطح دسترسی کاربر اجرا می‌شوند، بنابراین به‌طور پیش‌فرض امن هستند.


نکته مهم: اگر پلاگین را با chmod 4755 ست کنید، می‌تواند با سطح root اجرا شود—این کار فقط در صورت اطمینان کامل از امنیت کد توصیه می‌شود.


---

7. مدیریت سطح دسترسی پلاگین‌ها در پکیج‌ها


پلاگین‌ها می‌توانند برای هر کاربر یا پکیج فعال یا غیرفعال شوند.


7.1 مسیرهای ذخیره‌سازی


پکیج کاربر:


/usr/local/directadmin/data/users/USERNAME/packages/PACKAGE_NAME

فایل user.conf:


/usr/local/directadmin/data/users/USERNAME/user.conf

7.2 فعال‌سازی یا غیرفعال‌سازی پلاگین‌ها


اجازه دادن به پلاگین‌ها:


plugins_allow=plug1:plug2

ممنوع کردن پلاگین‌ها:


plugins_deny=plug3:plug4

7.3 قوانین منطقی


  • اگر هیچ‌کدام وجود نداشته باشند → همه پلاگین‌ها مجازند
  • اگر plugins_allow وجود داشته باشد → فقط همان‌ها مجازند
  • اگر plugins_deny وجود داشته باشد → همان‌ها ممنوعند
  • اگر هر دو باشند → plugins_allow تعیین‌کننده نهایی است

7.4 پاک کردن لیست پلاگین‌ها


plugins_allow=[clear]
plugins_deny=[clear]

توجه: مقدار خالی plugins_allow= یعنی هیچ پلاگینی اجازه اجرا ندارد.


نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

راهنمای کامل پیکربندی کلاینت‌های ایمیل، هشدارهای quota در Dovecot و بررسی آخرین لاگین‌ها در DirectAdmin

این مقاله یک مرجع جامع برای کاربران و مدیران DirectAdmin است. در این راهنما یاد می‌گیرید چگونه ایمیل را روی iPhone، Thunderbird و Gmail تنظیم کنید، هشدارهای پر شدن quota را در Dovecot فعال کنید و با یک اسکریپت ساده، آخرین زمان لاگین تمام حساب‌های ایمیل را مشاهده کنید.

ادامه

عیب‌یابی Dovecot در DirectAdmin – رفع خطاهای IMAP، مشکلات احراز هویت و بررسی گواهی SSL

Dovecot سرویس اصلی IMAP/POP3 در DirectAdmin است. گاهی کاربران هنگام ورود به وب‌میل یا کلاینت ایمیل با خطاهایی مثل "Connection dropped" یا "unknown user" مواجه می‌شوند. این مقاله یک راهنمای کامل برای رفع خطاهای رایج Dovecot، پاک‌سازی ایندکس‌ها، بررسی دیتابیس‌های احراز هویت و تست گواهی SSL روی پورت‌های 143 و 993 است.

ادامه

عیب‌یابی DNS در DirectAdmin – وقتی named اجرا می‌شود اما دامنه resolve نمی‌شود

گاهی سرویس named (BIND) روی سرور اجرا می‌شود اما دامنه‌ها resolve نمی‌شوند یا از بیرون پاسخ DNS دریافت نمی‌شود. این مقاله یک راهنمای کامل برای بررسی listen، فایروال، تنظیمات named.conf، propagation، رکوردهای اشتباه، مشکلات ساب‌دامین، resolv.conf و خطاهای رایج DNS در DirectAdmin است.

ادامه

مدیریت رکوردهای DNS در DirectAdmin – راهنمای کامل، کاربردی و حرفه‌ای

DirectAdmin ابزارهای قدرتمندی برای مدیریت DNS ارائه می‌دهد: از کاهش TTL برای جلوگیری از downtime، تا ساخت رکوردهای SRV، فعال‌سازی DNSSEC، مدیریت delegation ساب‌دامین‌ها، افزودن خودکار TLSA برای DANE و حتی تغییرات گروهی (Mass Update) روی همه دامنه‌ها. این مقاله یک مرجع کامل برای مدیریت حرفه‌ای DNS در DirectAdmin است.

ادامه

DNS و Nameserverها در DirectAdmin – راهنمای کامل، کاربردی و حرفه‌ای

DNS ستون فقرات اینترنت است و وظیفه دارد نام دامنه را به IP تبدیل کند. در DirectAdmin می‌توان Nameserverهای اختصاصی ساخت، DNS را مدیریت کرد، DNS Clustering راه‌اندازی کرد و حتی از DNS خارجی استفاده نمود. این مقاله یک راهنمای جامع برای درک DNS، ساخت ns1/ns2، تنظیم Glue Record، رفع خطاها و مدیریت حرفه‌ای DNS در DirectAdmin است.

ادامه

CustomBuild در DirectAdmin – راهنمای کامل نصب، به‌روزرسانی، پیکربندی و سفارشی‌سازی پیشرفته

CustomBuild ابزار اصلی DirectAdmin برای مدیریت سرویس‌ها و نرم‌افزارهای سرور است. این ابزار وب‌سرور، PHP، دیتابیس، ایمیل، FTP و بسیاری از کامپوننت‌های دیگر را نصب، به‌روزرسانی و پیکربندی می‌کند. به دلیل کامپایل از سورس، CustomBuild انعطاف‌پذیری بسیار بالا، سرعت دسترسی به نسخه‌های جدید و مصرف منابع بهینه را فراهم می‌کند.

ادامه