مدیریت دامنه‌ها، کاربران و ریسلرها در DirectAdmin

DirectAdmin مجموعه‌ای از ابزارهای قدرتمند برای مدیریت دامنه‌ها، کاربران و ریسلرها ارائه می‌دهد. در این مقاله، مهم‌ترین عملیات مدیریتی شامل تغییر نام دامنه، تغییر نام کاربری، انتقال دامنه بین کاربران، ادغام حساب‌ها، رفع خطای Domain Already Exists، ارسال پیام به همه کاربران، مدیریت پکیج‌ها، غیرفعال‌سازی mail_sni و نکات کاربردی دیگر را بررسی می‌کنیم.

Resellers in DirectAdminManaging Domains

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

1. تغییر نام یک دامنه در DirectAdmin


برای تغییر نام دامنه (مثلاً domain1.com → domain2.com):

  1. به مسیر User Level → Domain Setup → Change a Domain Name بروید.
  2. دامنه را انتخاب کنید و نام جدید را وارد کنید.

نکات مهم:

  • فایل‌های وب (public_html) و ایمیل‌ها تحت تأثیر قرار می‌گیرند.
  • دیتابیس‌ها تغییر نام نمی‌دهند؛ ممکن است لازم باشد مسیرها یا config اسکریپت‌ها را اصلاح کنید.
---

2. تغییر نام کاربری (Username)


به‌عنوان root در SSH اجرا کنید:


cd /usr/local/directadmin/scripts
./change_username.sh olduser newuser

نکته امنیتی مهم: قبل از تغییر نام کاربری، از تمام دیتابیس‌ها بک‌آپ کامل بگیرید.

---

3. انتقال دامنه از یک کاربر به کاربر دیگر


از اسکریپت آماده استفاده کنید:


cd /usr/local/directadmin/scripts/
./move_domain.sh domain.com olduser newuser

اگر newuser وجود ندارد:

  • یک دامنه فیک (مثلاً fakedomain.com) بسازید.
  • دامنه اصلی را منتقل کنید.
  • دامنه فیک را حذف کنید.

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

از اسکریپت زیر استفاده کنید:


rename_database_with_user.sh
---

4. ادغام (Merge) دو حساب کاربری


این کار معمولاً برای کاهش تعداد حساب‌ها یا ساده‌سازی مدیریت انجام می‌شود.

روش ۱: ارتقاء کاربر و حذف حساب قدیمی


cd /usr/local/directadmin/scripts
./user_to_reseller.sh fred
echo "fred" >> /usr/local/directadmin/data/admin/admin.list
perl -pi -e 's/^fred\n//' /usr/local/directadmin/data/admin/reseller.list
perl -pi -e 's/usertype=reseller/usertype=admin/' /usr/local/directadmin/data/users/fred/user.conf

سپس با کاربر fred وارد شوید و حساب admin را حذف کنید.

روش ۲: Restore Merge با بک‌آپ

اگر کاربر حذف شده، فایل بک‌آپ را rename کنید:


user.admin.fred.tar.gz → admin.root.admin.tar.gz

و Restore کنید.

روش ۳: انتقال دستی (پیشرفته)

  • انتقال همه دامنه‌ها
  • انتقال دیتابیس‌ها با rename_database_with_user.sh
  • انتقال cronjobها:

crontab -u fred -l > crons.txt
crontab -u admin -e
---

5. رفع خطای “Domain already exists”


اگر دامنه در هیچ حسابی نیست اما خطا می‌دهد، موارد زیر را بررسی کنید:

  • named.conf
  • /etc/virtual/domains
  • /etc/virtual/domainowners
  • /etc/virtual/domain.com
  • فایل‌های .nzf در /var/named

در Multi-Server Setup نیز گزینه Domain Check ممکن است فعال باشد.

---

6. چرا برخی کاربران در Show All Users نمایش داده نمی‌شوند؟


کش خراب شده است. بازسازی کنید:


da taskq --run="action=cache&value=showallusers"

یا فایل را حذف کنید:


rm -f /usr/local/directadmin/data/admin/show_all_users.cache
---

7. ارسال پیام به همه ایمیل‌های سیستم


  1. Admin Level → Show All Users → Advanced Search
  2. Items per Page = All
  3. Search → Select All → Send a Message
  4. گزینه‌های All E-Mail Accounts و E-Mail Only را فعال کنید.
---

8. Suspend/Unsuspend کاربر یا دامنه از خط فرمان (DA v1.595+)



/usr/local/directadmin/directadmin --suspend-user user=fred
/usr/local/directadmin/directadmin --unsuspend-user user=fred

/usr/local/directadmin/directadmin --suspend-domain domain=domain.com
/usr/local/directadmin/directadmin --unsuspend-domain domain=domain.com
---

9. غیرفعال کردن Suspend خودکار ریسلر روی Overlimit


در فایل reseller.conf:


suspend_at_limit=OFF
---

10. تغییر پکیج همه کاربران


اسکریپت:


OLD=custom
NEW=fancy
for i in `ls /usr/local/directadmin/data/users`; do
    if grep -q "usertype=user" /usr/local/directadmin/data/users/$i/user.conf; then
        perl -pi -e "s/package=$OLD/package=$NEW/" /usr/local/directadmin/data/users/$i/user.conf
    fi
done

سپس پکیج fancy را از پنل Save کنید.

---

11. تغییر پکیج همه کاربران یک ریسلر



CREATOR="silver"
TOPACKAGE="gold"
for u in `grep "^creator=${CREATOR}$" /usr/local/directadmin/data/users/*/user.conf | cut -d/ -f4`; do
    perl -pi -e "s/^package=.*/package=${TOPACKAGE}/" /usr/local/directadmin/data/users/$u/user.conf
done

سپس پکیج gold را Save کنید.

---

12. غیرفعال کردن mail_sni برای یک دامنه


در فایل:


/usr/local/directadmin/data/users/username/domains/domain.com.conf

اضافه کنید:


mail_sni=OFF

سپس:


echo "action=rewrite&value=mail_sni" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d
---

13. ارسال اعلان‌های حجیم (مثل brute force) به ایمیل دیگر


در فایل user.conf ادمین:


[email protected],[email protected]
---

14. ممنوع کردن دامنه‌های خاص


فایل زیر را کپی کنید:


/usr/local/directadmin/data/templates/forbidden_domains.list
→ /usr/local/directadmin/data/templates/custom/forbidden_domains.list

دامنه‌های ممنوعه را اضافه کنید.

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