راهنمای کامل سفارشی‌سازی کاربران در DirectAdmin: کنترل دستورات، محدودیت دامنه‌ها، صفحات پیش‌فرض، اسکریپت‌های سفارشی و مدیریت رمز عبور

این مقاله یک راهنمای جامع برای سفارشی‌سازی رفتار کاربران در DirectAdmin است. شامل استفاده از all_pre.sh برای کنترل دستورات، جلوگیری از ایجاد ساب‌دامین‌های خاص، محدود کردن تعداد دامنه‌ها، سفارشی‌سازی index.html پیش‌فرض، اجرای اسکریپت‌های توکار، مدیریت قالب‌ها و پیام‌ها، ایجاد index.html برای ساب‌دامین‌ها، و جلوگیری از تغییر رمز عبور توسط کاربران.

DirectAdmin user customizationall_pre.sh, domain_create_pre.sh, default index.htmlsubdomain scripts, password restrictions

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

1. کنترل کامل دستورات کاربران با all_pre.sh


اسکریپت all_pre.sh یکی از قدرتمندترین ابزارهای سفارشی‌سازی در DirectAdmin است. این اسکریپت قبل از اجرای هر دستور /CMD_* اجرا می‌شود.


مسیر فایل:

/usr/local/directadmin/scripts/custom/all_pre.sh

اگر اسکریپت مقدار 0 برگرداند → دستور مجاز است. اگر مقدار غیر صفر برگرداند → دستور متوقف می‌شود و پیام اسکریپت به کاربر نمایش داده می‌شود.


مثال: جلوگیری از ساخت ایمیل با quota بیشتر از 50MB

#!/bin/sh

if [ "$command" = "/CMD_EMAIL_POP" ] && [ "$domain" = "thedomainyouwant.com" ]; then
    if [ "$action" = "create" ] || [ "$action" = "modify" ]; then
        if [ "$quota" -eq 0 ]; then
            echo "you cant have unlimited quota";
            exit 1;
        fi
        if [ "$quota" -gt 50 ]; then
            echo "you cant have more than a 50 meg quota";
            exit 2;
        fi
    fi
fi
exit 0;

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/all_pre.sh

این روش برای محدودسازی هر نوع دستور قابل استفاده است.


---

2. جلوگیری از ایجاد ساب‌دامین روی دامنه شما


اگر نمی‌خواهید کاربران بتوانند ساب‌دامین‌هایی روی دامنه اصلی شما ایجاد کنند، از domain_create_pre.sh استفاده کنید.


فایل:

/usr/local/directadmin/scripts/custom/domain_create_pre.sh

محتوا:

#!/usr/local/bin/php

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/domain_create_pre.sh

این اسکریپت با سطح root اجرا می‌شود، بنابراین می‌توانید بررسی‌های پیشرفته‌تری نیز انجام دهید.


---

3. محدود کردن تعداد دامنه‌های کل سرور


برای جلوگیری از ایجاد بیش از تعداد مشخصی دامنه در کل سرور:

فایل:

/usr/local/directadmin/scripts/custom/domain_create_pre.sh

محتوا:

#!/bin/sh
MAX_DOMAINS=10

CURRENT=`ls -la /etc/virtual/ | grep drwx | grep -v majordomo | grep -v usage | grep -c drwx`

if [ "$CURRENT" -ge "$MAX_DOMAINS" ]; then
       echo "Maximum number of domains ($MAX_DOMAINS) has already been created. Cannot create any more."
       exit 1;
fi
exit 0;

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/domain_create_pre.sh

برای جلوگیری از ایجاد کاربر بدون دامنه، آن را به user_create_pre.sh لینک کنید:

cd /usr/local/directadmin/scripts/custom
ln -s domain_create_pre.sh user_create_pre.sh

---

4. سفارشی‌سازی index.html پیش‌فرض برای دامنه‌های جدید


هنگام ایجاد دامنه جدید، فایل index.html از مسیر زیر کپی می‌شود:

/home/RESELLERNAME/domains/default/index.html

توکن‌های قابل استفاده:

  • |DOMAIN|
  • |USERNAME|
  • |DATECREATED|
  • |IP|

تمام فایل‌ها باید world-readable باشند (پرمیشن 755).


---

5. اجرای اسکریپت‌های توکار در index.html


می‌توانید اسکریپت‌های PHP را داخل index.html اجرا کنید:

|$/usr/local/bin/php

DONE|

این اسکریپت با سطح دسترسی کاربر اجرا می‌شود.


---

6. ویرایش همه قالب‌ها، پیام‌ها و فایل‌های پیش‌فرض


قالب‌ها در مسیر زیر قرار دارند:

/usr/local/directadmin/data/templates

برای جلوگیری از overwrite شدن پس از آپدیت، فایل‌ها را به مسیر custom منتقل کنید:

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

برای سفارشی‌سازی کامل default directory:

/usr/local/directadmin/data/templates/custom/default/*

---

7. ساخت index.html سفارشی برای ساب‌دامین‌ها


چون DirectAdmin قالب پیش‌فرض برای ساب‌دامین ندارد، باید از اسکریپت post استفاده کنید.

فایل:

/usr/local/directadmin/scripts/custom/subdomain_create_post.sh

محتوا:

#!/bin/sh
INDEX=/home/$username/domains/$domain/public_html/$subdomain/index.html
rm -f $INDEX
cp /your/custom/index.html $INDEX
chown $username:$username $INDEX
exit 0;

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/subdomain_create_post.sh

---

8. جلوگیری از تغییر رمز عبور توسط کاربران


برای جلوگیری از تغییر رمز توسط خود کاربر (اما اجازه تغییر توسط سازنده):

فایل:

/usr/local/directadmin/scripts/custom/user_password_change_pre.sh

محتوا:

#!/bin/sh
if [ "$called_by_self" = "1" ]; then
       echo "You cannot change your own password.";
       exit 1;
fi
exit 0;

قابل اجرا:

chmod 755 /usr/local/directadmin/scripts/custom/user_password_change_pre.sh

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