~3 min read • Updated Mar 1, 2026
1. چگونه نام یک دامنه را تغییر دهیم؟
برای تغییر نام دامنه (مثلاً domain1.com → domain2.com):
- به مسیر User Level → Domain Setup → Change a Domain Name بروید.
- دامنه را انتخاب کنید و نام جدید را وارد کنید.
نکات مهم:
- فایلهای وب (public_html) و ایمیلها تحت تأثیر قرار میگیرند.
- دیتابیسها تغییر نمیکنند؛ ممکن است لازم باشد مسیرها را در اسکریپتها اصلاح کنید.
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 وجود ندارد، یک دامنه فیک برایش بسازید، انتقال دهید، سپس دامنه فیک را حذف کنید.
- برای انتقال دیتابیسها از اسکریپت
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 کنید.
روش ۳: انتقال دستی (پیشرفته)
- انتقال همه دامنهها از fred به admin
- انتقال دیتابیسها با rename_database_with_user.sh
- انتقال cronjobها با:
crontab -u fred -l
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"
یا فایل را حذف کنید تا DA دوباره بسازد:
rm -f /usr/local/directadmin/data/admin/show_all_users.cache
---
7. چگونه به همه ایمیلهای سیستم پیام ارسال کنیم؟
- Admin Level → Show All Users → Advanced Search
- Items per Page = All
- Search → Select All → Send a Message
- گزینههای All E-Mail Accounts و E-Mail Only را فعال کنید.
8. چگونه کاربر یا دامنه را از خط فرمان suspend/unsuspend کنیم؟
DirectAdmin 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 Reseller روی 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. تغییر پکیج همه کاربران یک Reseller
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
→ custom/forbidden_domains.list
دامنههای ممنوعه را اضافه کنید.
Written & researched by Dr. Shahin Siami