یکی از رایجترین چالشهایی که وبمسترها، طراحان وب و مدیران سرور در هاستهای لینوکسی با آن مواجه میشوند، به هم ریختن سطوح دسترسی یا اصطلاحاً Permissions فایلها و دایرکتوریها است.
این مشکل که غالباً پس از نصب افزونههای جدید، آپدیتهای سنگین وردپرس، تغییر دستی فایلها از طریق پروتکلهای مختلف یا خطاهای انسانی رخ میدهد، میتواند دسترسی به وبسایت را مختل کرده و کاربران را با خطای معروف Internal Server Error یا همان خطای 500 مواجه کند.
هنگامی که کنترل پنل اصلی شما cPanel است، ابزارهای مختلفی برای مدیریت فایلها وجود دارد؛ اما زمانی که حجم دادهها بسیار بالا باشد یا نیاز به اصلاح ساختار دسترسی کل اکانت به صورت دستهجمعی داشته باشید، خط فرمان SSH سریعترین و قدرتمندترین ابزار در اختیار شماست.
در این مقاله تخصصی از وبلاگ سابین سرور قصد داریم به صورت گامبهگام و کاملاً کاربردی، نحوه ریست و بازگردانی پرمیشنهای پیشفرض فایلها و فولدرهای هاست cPanel را از طریق SSH بررسی کنیم و نکات امنیتی حیاتی را مرور نماییم.
پیشنهاد استفاده : اگر از سرویس شرکت های دیگر استفاده میکنید و از نظر سرعت و پاسخگویی پشتیبانی ناراضی هستید، پیشنهاد ما استفاده از هاست وردپرس ایران سابین سرور است.
سطح دسترسی یا پرمیشن در لینوکس چیست؟
پیش از آنکه به سراغ دستورات اجرایی برویم، شناخت مبانی پرمیشنها در سیستمعامل لینوکس اهمیت بالایی دارد. در هاستهای لینوکسی سیپنل، هر فایل و دایرکتوری دارای سه دسته کاربر اصلی است که شامل مالک فایل (Owner)، گروه کاربری (Group) و عموم کاربران (Public/Others) میشود.
برای هر کدام از این دستهها، سه نوع سطح دسترسی تعریف شده است: خواندن (Read با مقدار 4)، نوشتن (Write با مقدار 2) و اجرای فایل یا ورود به دایرکتوری (Execute با مقدار 1).
ترکیب این اعداد، کدهای سهرقمی یا چهاررقمی پرمیشن را تشکیل میدهد که امنیت و یکپارچگی فایلهای وبسایت شما را تضمین میکنند. تنظیم نادرست این مقادیر نه تنها مانع از لود شدن صحیح اسکریپتها میشود، بلکه میتواند راه نفوذ بدافزارها را نیز باز کند.
بنابراین، تسلط بر نحوه بازنشانی اصولی آنها از طریق خط فرمان SSH یک مهارت حیاتی برای هر مدیر سرور و وبمستری به شمار میرود.

دلایل اصلی تغییر ناخواسته پرمیشنها در هاست
خراب شدن یا تغییر غیرمجاز سطوح دسترسی فایلها معمولاً به دلایل مشخصی رخ میدهد که آگاهی از آنها میتواند به پیشگیری از بروز مشکلات مشابه کمک کند:
- نصب یا آپدیت غیراصولی افزونهها و قالبها: برخی از اسکریپتها یا پلاگینهای نالشده یا ناسازگار، فایلها را با پرمیشنهای باز (مانند 777) ایجاد میکنند که خطرات امنیتی جدی به همراه دارد.
- انتقال فایلها با اکانتهای مختلف: هنگام جابهجایی فایلها بین یوزرهای مختلف سرور با استفاده از FTP یا SSH بدون رعایت مالکیت (Ownership)، دسترسی وبسرور به آنها قطع میشود.
- عملیات استخراج آرشیوها: آپلود فایلهای زیپ حجیم و اکسترکت کردن آنها در دایرکتوری اصلی بدون توجه به تنظیمات پیشفرض پرمیشن سیستمعامل.
- اشتباهات انسانی: تغییر دستی پرمیشن پوشههای حیاتی مانند wp-content یا public_html به صورت بازگشتناپذیر.
مراحل گامبهگام ریست پرمیشن هاست سیپنل از طریق SSH
برای انجام این عملیات، شما نیاز به دسترسی به محیط ترمینال سرور (از طریق SSH با کاربر روت یا دسترسی ترمینال تعبیهشده در WHM) دارید. اجرای صحیح این دستورات مستلزم دقت بالا است تا فایلهای سیستمی سایر اکانتها دچار تغییر نشوند.
مقدمات و ورود به دایرکتوری هدف
در گام نخست، باید وارد پوشه اصلی دامنهای شوید که قصد دارید پرمیشنهای آن را ریست کنید. دستور زیر را در ترمینال SSH خود وارد کنید:
cd /home/yourdomain/public_html/
توجه داشته باشید که در دستور فوق، به جای عبارت yourdomain باید نام کاربری (Username) دقیق اکانت سیپنل مربوطه را وارد کنید. اگر از نام دامنهها مطمئن نیستید، میتوانید از طریق ابزارهای کمکی یا بررسی ساختار پوشهها در مسیر /home نام کاربری صحیح را استخراج کنید.
اعمال سطح دسترسی استاندارد برای پوشهها (Directories)
پس از ورود به دایرکتوری روت وبسایت، باید تمام پوشههای داخلی را روی امنترین و استانداردترین سطح دسترسی یعنی 755 تنظیم کنیم. دستور زیر به صورت بازگشتی (Recursive) تمام زیرپوشهها را هدف قرار میدهد:
find . -type d -exec chmod 755 {} \;
با اجرای این فرمان، تمام دایرکتوریهای موجود درون این پوشه به سطح دسترسی 755 تغییر پیدا میکنند که به وبسرور اجازه میدهد به پوشهها دسترسی داشته باشد و محتویات آنها را بخواند یا اجرا کند.
اعمال سطح دسترسی استاندارد برای فایلها (Files)
پس از اصلاح پوشهها، نوبت به فایلهای درون هاست میرسد. استاندارد امنیتی لینوکس برای فایلهای وب (مانند اسکریپتهای PHP، تصاویر و مستندات) سطح دسترسی 644 است. دستور زیر را برای بازنشانی فایلها اجرا کنید:
find . -type f -exec chmod 644 {} \;
این دستور تمام فایلهای موجود در دایرکتوری جاری و زیرشاخههای آن را به سطح دسترسی 644 تغییر خواهد داد تا امنیت دادهها حفظ شده و از دستکاری غیرمجاز جلوگیری شود.
نکته بسیار مهم: زمان اجرای این دستورات کاملاً به تعداد فایلها، حجم دیتابیس فایلها و تعداد Inodeهای مصرفی اکانت شما بستگی دارد.
اگر وبسایت بزرگی دارید و تعداد فایلها زیاد است، ممکن است این فرآیند چندین دقیقه زمان ببرد. به هیچ وجه پنجره ترمینال را نبندید و اجازه دهید سرور فرایند اجرایی خود را به اتمام برساند.
اگر مایلید درباره ابزارهای کمکی سرور و بهینهسازی سرعت اطلاعات بیشتری کسب کنید، مطالعه مقاله 4 دستور نمایش آپتایم سرور لینوکس خالی از لطف نخواهد بود.
بررسی انواع سطح دسترسیهای امن در هاست
برای اینکه در آینده تسلط بیشتری روی مدیریت پرمیشنهای هاست خود داشته باشید، سه سطح دسترسی کلیدی و ایمن را مرور میکنیم:
- سطح دسترسی 755: مناسب برای تمامی پوشهها و دایرکتوریها. این سطح اجازه میدهد وبسرور محتویات پوشه را بخواند و اجرا کند، اما کاربران غیرمجاز امکان تغییر ساختار آن را ندارند.
- سطح دسترسی 644: اختصاصی برای فایلهای متنی، اسکریپتها و کدهای برنامهنویسی. کاربران سایت میتوانند محتوای فایل را مشاهده کنند، اما امکان ویرایش آن وجود ندارد.
- سطح دسترسی 400 یا 440: مناسب برای فایلهای بسیار حساس و حیاتی نظیر فایل کانفیگ دیتابیس (مانند
wp-config.php). این فایلها تنها توسط مالک اکانت یا روت قابل خواندن هستند و امنیت سایت را به شدت بالا میبرند.
هشدار امنیتی: به هیچ عنوان از سطح دسترسی 777 بر روی فایلها و پوشههای هاست خود استفاده نکنید. این سطح دسترسی به معنای دسترسی کامل خواندن، نوشتن و اجرا برای همگان است و میتواند بستر مناسبی برای نفوذ هکرها و بدافزارها فراهم کند.
در صورت نیاز به بررسی لایههای امنیتی پیشرفتهتر در هاست و سرور، پیشنهاد میکنیم مقاله Imunify360 چیست؟ راهنمای جامع امنیت سرور و هاست لینوکسی را مطالعه نمایید.
عیبیابی مشکلات رایج پس از تغییر پرمیشن
گاهی اوقات حتی پس از اجرای دستورات فوق، ممکن است همچنان با خطاهایی مانند 403 Forbidden یا خطای 500 مواجه شوید. در این حالت بررسی موارد زیر الزامی است:
- بررسی مالکیت فایلها (Ownership): اگر دستورات را با دسترسی روت اجرا کرده باشید، ممکن است مالکیت فایلها از کاربر cPanel به روت تغییر کرده باشد. برای اصلاح این مورد، حتماً دستور
chown -R username:username /home/username/public_htmlرا اجرا کنید. - بررسی فایل .htaccess: تنظیمات نادرست ریدایرکتها یا کدهای حفاظتی درون این فایل میتواند عامل اصلی بروز خطای سرور باشد.
- بررسی لاگهای وبسرور: فایلهای Error Log در سیپنل دقیقترین منبع برای ریشهیابی علت اصلی خطاهای سرور هستند.
جمعبندی و نتیجهگیری
به هم ریختن سطوح دسترسی فایلها در هاست سیپنل یکی از مشکلات رایج اما قابل حل است که با استفاده از چند دستور ساده در خط فرمان SSH میتوان در کوتاهترین زمان ممکن آن را برطرف کرد.
رعایت اصول امنیتی، پرهیز از پرمیشنهای خطرناک مانند 777 و استفاده از دستورات بازگشتی find به همراه chmod تضمین میکند که ساختار فایلهای وبسایت شما همواره ایمن و پایدار بماند.
چنانچه وبسایت شما به منابع قدرتمندتری نیاز دارد یا در مدیریت سرور خود با چالش مواجه هستید، میتوانید با بررسی سرویسهای پرسرعت سابین سرور، میزبانی پایداری را برای کسبوکار خود فراهم کنید. تیم پشتیبانی 24 ساعته سابین سرور نیز همواره آماده است تا در تمامی مراحل فنی و پیکربندی سرور همراه شما باشد.




