همین متن مربوط به FileManager در DirectAdmin را برات تبدیل کردم به یک مقاله کامل، حرفه‌ای، روان و سئوپسند به زبان انگلیسی—با ساختاری دقیق و مناسب برای مستندات یا وبلاگ‌های فنی.

این مقاله یک راهنمای جامع برای مدیریت و سفارشی‌سازی FileManager در DirectAdmin است. شامل جلوگیری از حذف مسیرهای حساس، افزودن فرمت‌های جدید به دکمه EDIT، تغییر سطح دسترسی فایل‌های آپلود شده، رفع مشکل دانلود فایل‌ها، و استفاده از قابلیت head و tail برای مشاهده بخشی از فایل‌ها.

Customizing the DirectAdmin FileManagerProtecting Files

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

1. جلوگیری از حذف فایل‌ها یا مسیرهای حساس


کاربران گاهی فایل‌هایی را حذف می‌کنند که نباید حذف شوند. برای جلوگیری از حذف مسیرهای مهم (مثلاً public_html) می‌توانید از اسکریپت file_manager_remove_pre.sh استفاده کنید.

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

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

محتوا:

#!/bin/bash
if [[ "${file#${home}}" == /domains/*/public_html ]]; then
    echo "You cannot delete your public_html link!"
    exit 1
fi

قابل اجرا:

chmod 700 /usr/local/directadmin/scripts/custom/file_manager_remove_pre.sh

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


---

2. افزودن فرمت‌های جدید به دکمه EDIT


برای اینکه یک فایل در FileManager قابل ویرایش باشد، باید در فایل /etc/mime.types با نوعی که با text/ شروع می‌شود ثبت شده باشد.

مثال: افزودن پسوند .ctp برای CakePHP:

text/x-php     ctp

پس از افزودن، FileManager این فایل‌ها را به‌عنوان فایل متنی تشخیص می‌دهد.


---

3. تغییر سطح دسترسی فایل‌های آپلود شده


برای تغییر chmod فایل‌هایی که از طریق FileManager آپلود می‌شوند، از اسکریپت all_post.sh استفاده کنید.

فایل:

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

محتوا:

#!/bin/sh

CHMODVAL=700
ULPATH=/home/${username}${path}

setfile() {
  if [ "$1" = "" ]; then
    return;
  fi

  F=`echo $1 | cut -d/ -f4 | awk '{ print substr($1,1,length($1)-6) }'`

  chmod ${CHMODVAL} ${ULPATH}${F}
}

if [ "$command" = "/CMD_FILE_MANAGER/" ] || [ "$command" = "/CMD_FILE_MANAGER" ]; then
  if [ "$action" = "upload" ]; then
    setfile $file1
    setfile $file2
    setfile $file3
    setfile $file4
    setfile $file5
    setfile $file6
    setfile $file7
    setfile $file8
  fi
fi

exit 0;

قابل اجرا:

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

---

4. رفع مشکل دانلود فایل‌ها (نمایش به‌صورت متن خام)


اگر فایل‌ها هنگام دانلود به‌صورت متن خام نمایش داده می‌شوند، مشکل معمولاً از /etc/mime.types است.

مواردی که باید بررسی کنید:

  • فایل وجود داشته باشد
  • سطح دسترسی صحیح باشد:
ls -la /etc/mime.types
-rw-r--r-- 1 root root ...
  • نوع فایل‌ها (zip, gz, tgz) در آن ثبت شده باشد:
grep zip /etc/mime.types
application/zip zip
  • DirectAdmin از مسیر صحیح استفاده کند:
/usr/local/directadmin/directadmin config | grep mime
apachemimetypes=/etc/mime.types

در صورت تغییر، DirectAdmin را ری‌استارت کنید.


---

5. استفاده از head و tail در FileManager


برای مشاهده چند خط اول یا آخر یک فایل، می‌توانید از پارامترهای GET استفاده کنید.

مشاهده ۱۰ خط اول:

/CMD_FILE_MANAGER/file.txt?fm_head=10

مشاهده ۵ خط آخر:

/CMD_FILE_MANAGER/file.txt?fm_tail=5

فقط یکی از head یا tail قابل استفاده است. خروجی همیشه با text/plain نمایش داده می‌شود.


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

مقالات مرتبط

راهنمای کامل پیکربندی کلاینت‌های ایمیل، هشدارهای 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 انعطاف‌پذیری بسیار بالا، سرعت دسترسی به نسخه‌های جدید و مصرف منابع بهینه را فراهم می‌کند.

ادامه