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

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

Customizing the DirectAdmin FileManagerProtecting Files

~3 min read • Updated Mar 1, 2026

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 نمایش داده می‌شود.


Written & researched by Dr. Shahin Siami