~4 min read • Updated Feb 17, 2026
1. مقدمه
cPanel & WHM از VirtFS برای ایجاد یک محیط Jailed Shell استفاده میکند. این محیط مانند یک کانتینر عمل میکند و اجازه نمیدهد کاربر به دایرکتوریهای کاربران دیگر دسترسی داشته باشد. این ویژگی امنیت سرور را افزایش میدهد.
کاربران در محیط Jailed Shell میتوانند برخی دستورات محدودشده مانند crontab و passwd را اجرا کنند.
2. نکات مهم و هشدارها
- در محیط Virtuozzo، اگر بیش از ۴۰۰۰ mount ایجاد شود، ممکن است سرور دچار مشکل عملکرد یا اتصال شود.
- اگر گزینه EXPERIMENTAL: Jail Apache Virtual Hosts using mod_ruid2 فعال باشد و سرور بیش از ۵۰۰ حساب داشته باشد، ممکن است مشکلات مشابه رخ دهد.
- در سرورهای CloudLinux، فعالسازی Jailed Shell ممکن است باعث آسیبپذیری symlink شود. باید Link Traversal Protection فعال شود.
3. دایرکتوری /home/virtfs/
هشدار بسیار مهم: هرگز روی فایلها یا دایرکتوریهای mount شده در مسیر /home/virtfs/ دستور rm اجرا نکنید. این کار فایلهای واقعی سیستم را حذف کرده و سرور را غیرقابل استفاده میکند.
هنگامی که کاربر برای اولین بار با SSH یا SFTP وارد Jailed Shell میشود، سیستم دایرکتوری /home/virtfs/ را ایجاد میکند. این دایرکتوری شامل فایلهای پیکربندی، ابزارها و mountهای BIND است.
این دایرکتوری فضای واقعی دیسک مصرف نمیکند، اما برخی دستورات مانند du ممکن است خلاف این را نشان دهند.
3.1 BIND Mount چیست؟
BIND Mount یک لینک مجازی بین دو مسیر ایجاد میکند. مثلاً:
/home/virtfs/username/usr/bin → /usr/binکاربر محتوای /usr/bin را مشاهده میکند، اما در محیط محدود شده.
نکته: در سیستمعاملهای CentOS 7، CloudLinux 7، AlmaLinux، Rocky Linux، RHEL 7 و Ubuntu، mountهای اضافی برای مسیرهای سیستمی وجود دارد. هرگز آنها را unmount نکنید.
4. فعالسازی Jailed Shell
4.1 فعالسازی برای همه کاربران جدید
از مسیر زیر استفاده کنید:
WHM » Server Configuration » Tweak Settings
گزینه Use cPanel jailshell by default را فعال کنید.
این گزینه روی حسابهای جدید و حسابهایی که بعداً ویرایش میکنید اعمال میشود.
4.2 فعالسازی برای یک کاربر خاص
از مسیر زیر استفاده کنید:
WHM » Account Functions » Manage Shell Access
با فعالسازی این گزینه، shell کاربر به مسیر زیر تغییر میکند:
/usr/local/cpanel/bin/jailshell5. ارتباط Exim با VirtFS
اگر shell کاربر jailshell یا noshell باشد، Exim پردازشهای alias و filter را داخل VirtFS اجرا میکند. این کار امنیت بیشتری ایجاد میکند.
6. هشدارهای CSF یا LFD
پس از آپدیت ممکن است هشدارهایی مانند زیر مشاهده کنید:
/bin/crontab: FAILED
/bin/passwd: FAILEDاین یک هشدار اشتباه (False Positive) است. زیرا این فایلها symlinkهایی هستند که برای دسترسی Jailed Shell استفاده میشوند.
7. غیرفعالسازی یا حذف محیط Jailed Shell
هشدار: نمیتوانید VirtFS را بهطور کامل حذف کنید. حتی پس از حذف، برخی فرآیندها دوباره آن را ایجاد میکنند، مانند:
- Exim
- Piped Email
- Cron Jobs
- Jailed Apache Virtual Hosts
7.1 غیرفعالسازی برای یک کاربر
از مسیر زیر استفاده کنید:
WHM » Account Functions » Manage Shell Access
7.2 غیرفعالسازی برای همه کاربران
- غیرفعال کردن Use cPanel jailshell by default در Tweak Settings
- انتخاب Disabled Shell برای همه کاربران
در این حالت shell کاربران به مسیر زیر تغییر میکند:
/usr/local/cpanel/bin/noshell8. حذف محیط VirtFS برای یک کاربر
- ابتدا Jailed Shell را برای کاربر غیرفعال کنید.
- سپس mountهای VirtFS را unmount کنید:
umount /home/virtfs/username/usr/bin9. اسکریپت پاکسازی VirtFS
برای حذف mountهای کاربران حذفشده یا غیرفعالشده:
/usr/local/cpanel/scripts/clear_orphaned_virtfs_mounts9.1 حذف mountهای یک کاربر
/usr/local/cpanel/scripts/clear_orphaned_virtfs_mounts --user=username9.2 حذف mountهای همه کاربران
/usr/local/cpanel/scripts/clear_orphaned_virtfs_mounts --clearall9.3 بررسی mountهای VirtFS
grep -i username /proc/mountsنتیجهگیری
VirtFS یک ابزار قدرتمند برای افزایش امنیت کاربران SSH در cPanel & WHM است. با این حال، نیازمند مدیریت دقیق، رعایت هشدارها و آگاهی از محدودیتهاست. این مقاله تمام مراحل فعالسازی، غیرفعالسازی و پاکسازی VirtFS را پوشش میدهد.
Written & researched by Dr. Shahin Siami