~3 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴
1. محدود کردن تعداد بکاپهای هر کاربر
برای جلوگیری از ایجاد تعداد زیاد بکاپ توسط کاربران، میتوانید تعداد بکاپها را محدود کنید. مثال: حداکثر ۵ بکاپ.
فایل زیر را ایجاد کنید:
/usr/local/directadmin/scripts/custom/user_backup_pre.sh
محتوا:
#!/bin/sh
MAX_BACKUPS=5
U=`echo $file | cut -d/ -f3`
if [ "$U" != "$username" ]; then
exit 0;
fi
C=`ls /home/$username/backups | wc -l`
if [ "$C" -ge "$MAX_BACKUPS" ]; then
echo "Too many backups. Delete some from /home/$username/backups before creating another.";
exit 1;
fi
exit 0;
قابل اجرا:
chmod 755 /usr/local/directadmin/scripts/custom/user_backup_pre.sh
تست دستی:
file=/home/fred/backups/backup.tar.gz username=fred ./user_backup_pre.sh; echo $?;
---
2. محدود کردن حجم ایمیلها (Quota)
برای جلوگیری از تعیین quota بیشتر از ۵۰MB:
فایل:
/usr/local/directadmin/scripts/custom/email_create_pre.sh
محتوا:
#!/bin/sh
if [ "$quota" != "" ]; then
if [ "$quota" -gt "50" ]; then
echo "Cannot set quota greater than 50MB";
exit 1;
fi
fi
exit 0;
قابل اجرا و لینک به تغییر رمز ایمیل:
cd /usr/local/directadmin/scripts/custom/
chmod 755 email_create_pre.sh
ln -s email_create_pre.sh email_change_pass_pre.sh
---
3. جلوگیری از ساخت ایمیلهایی با نامهای حساس
برای جلوگیری از ساخت ایمیلهایی مثل root، webmaster، postmaster:
فایل:
/usr/local/directadmin/scripts/custom/all_pre.sh
محتوا:
#!/bin/sh
blockaccount()
{
if [ "$user" = "$1" ] || [ "$newuser" = "$1" ]; then
echo "You cannot create an account named $1";
exit 1;
fi
}
if [ "$command" = "/CMD_EMAIL_POP" ]; then
if [ "$action" = "create" ] || [ "$action" = "modify" ]; then
blockaccount root;
blockaccount webmaster;
blockaccount postmaster;
fi
fi
exit 0;
قابل اجرا:
chmod 755 /usr/local/directadmin/scripts/custom/all_pre.sh
---
4. سفارشیسازی تنظیمات IMAP/POP/SMTP هنگام ساخت ایمیل
برای تغییر اطلاعاتی که پس از ساخت ایمیل نمایش داده میشود:
cd /usr/local/directadmin/data/templates/custom
cp ../mail_settings.html .
vi mail_settings.html
مثال کاربردی:
- جایگزینی mail.|DOMAIN| با server.yourhostname.com
توکنهای زبان
بهجای ویرایش مستقیم متن انگلیسی، میتوانید از توکنهای |LANG_*| استفاده کنید.
این توکنها در فایل زیر قرار دارند:
/usr/local/directadmin/data/skins/enhanced/lang/en/internal/email.txt
---
5. سفارشیسازی محدودیت روزانه ارسال ایمیل بر اساس پکیج
روش جدید (New Method)
پکیجها اکنون دارای گزینه email_daily_limit هستند:
email_daily_limit=-1
مقادیر:
- -1 → استفاده از مقدار پیشفرض سیستم
- unlimited → بدون محدودیت (توصیه نمیشود)
مقدار نهایی در فایل زیر ذخیره میشود:
/etc/virtual/limit_USERNAME
روش قدیمی (Old Method)
ابتدا یک custom package item با نام user_email_limit بسازید.
سپس فایل زیر را ایجاد کنید:
/usr/local/directadmin/scripts/custom/user_create_post.sh
محتوا:
#!/bin/sh
if [ "$user_email_limit" != "" ] && [[ $user_email_limit =~ ^-?[0-9]+$ ]] && [ "$user_email_limit" -gt 0 ]; then
echo -n "$user_email_limit" > /etc/virtual/limit_$username
fi
exit 0;
قابل اجرا:
chmod 755 /usr/local/directadmin/scripts/custom/user_create_post.sh
---
6. ساخت سیستم Email-Only برای کاربران
روش 1: استفاده از DirectAdmin (سادهترین روش)
- کپی یک اسکین و ساخت نسخه email-only
cd /usr/local/directadmin/data/skins
cp -Rp enhanced emailonly
لینکهای غیرایمیلی مثل FileManager را حذف کنید.
- ساخت پکیج با محدودیتهای لازم (ftp=0، db=0، و…)
- استفاده از all_pre.sh یا commands.allow برای محدود کردن دسترسیها
روش 2: ساخت پنل اختصاصی با API
در این روش، شما یک سیستم لاگین و پنل اختصاصی با PHP میسازید و از API DirectAdmin برای مدیریت ایمیلها استفاده میکنید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی