سیستم عامل Unix یکی از سیستم عامل های محبوب و بسیار امن است؛ نه تنها distro های لینوکس بلکه Mac OS X نیز روی آن اجرا می شود. یکی از مهم ترین ویژگی های امنیتی سیستم عامل Unix مبحث سطح دسترسی فایل ها (file permission) است. شما می توانید با استفاده از این سطوح دسترسی تعیین کنید که چه کسی می تواند فایلی را بخواند، چیزی در آن بنویسد و یا فایلی را اجرا کند.
بنابراین اگر از سایت وردپرسی استفاده می کنید یا سرور لینوکسی دارید از این آموزش بسیار لذت خواهید برد. اکثر شرکت های میزبانی (hosting) به کاربران خود اجازه می دهند که Unix file permission ها را از طریق cPanel تغییر دهند تا بتوانند از فایل ها و دایرکتوری های مهم محافظت کنند. بنابراین بهتر است شروع کنیم!
مهم ترین نکته ای که همه باید بدانیم این است که Unix به همه چیز به چشم فایل نگاه می کند؛ در سیستم های Unix نه تنها فایل ها بلکه پوشه ها و دستگاه ها نیز فایل به حساب می آیند و Unix به آن ها سه سطح مالکیت می دهد:
شما باید تعیین کنید که هر کدام از این گروه ها چه سطح دسترسی خواهند داشت:
1. USER: کاربر یا user همان فردی است که فایل را ساخته است. هر فردی که در سیستم های unix فایلی بسازد به صورت خودکار صاحب آن فایل خواهد بود و این سطح دسترسی به او تعلق می گیرد.
2. GROUP: گروه یا GROUP معمولا بیشتر از یک کاربر را شامل می شوند. زمانی که می خواهید سطح دسترسی خاصی را به گروهی از کاربران بدهید از GROUP استفاده می کنید. به طور مثال می توانید به افراد یک گروه اجازه بدهید (یا بالعکس اجازه ندهید) که بتوانند یک فایل را بخوانند، در آن چیزی بنویسند یا با یک خط کد چیزی را اجرا کنند.
3. OTHER: غیره (OTHER) یعنی بقیه ی کسانی که می توانند به فایل دسترسی داشته باشند. از نظر UNIX این دسته از کاربران مالکان سوم فایل هستند که می توانید برایشان سطح دسترسی جداگانه تعیین کنید. افرادی که در این دسته قرار میگیرند نه فایل را ساخته اند و همگروه فردی هستند که فایل را ساخته است.
هر فایلی در سیستم های Unix سه نوع سطح دسترسی دارد:
سطح دسترسی در هر کدام از این موارد به صورت جداگانه تعیین می شود و شما می توانید با آن ها به سه گروه ذکر شده (کاربر، گروه و غیره) سطح دسترسی بدهید تا امنیت فایل ها بیشتر حفظ شود.
1. READ: دسترسی READ (با علامت R) به کاربران اجازه می دهد که فایلی را باز کرده یا بخوانند. در این سطح کاربر می تواند محتویات فایل را بخواند اما نمی تواند آن را ویرایش کند. زمانی که این سطح دسترسی به یک دیرکتوری (پوشه) داده شود کاربر می تواند محتوا را لیست کند اما نمی تواند آن را ویرایش یا حذف کند.
2. WRITE: دسترسی WRITE (با علامت W) به کاربر اجازه ی ویرایش محتوای یک فایل را می دهد. زمانی که این سطح دسترسی برای یک دیرکتوری تعیین شود کاربر می تواند تمامی فایل های داخل آن دایرکتوری را تغییر نام داده و ویرایش یا حذف کند.
3. EXECUTE: این سطح دسترسی (با علامت X) به کاربر اجازه می دهد که فایلی را به عنوان یک برنامه اجرا کند. این سطح دسترسی زمانی معنا پیدا می کند که سر و کار ما با فایل های قابل اجرا (مانند اسکریپت ها) باشد. برخلاف ویندوز، Unix به هر کسی اجازه ی اجرای برنامه ها را نمی دهد مگر آنکه سطح دسترسی EXECUTE داشته باشند.
Unix روش خوبی برای دریافت سطوح دسترسی فایل ها دارد؛ کافی است terminal را باز کرده و به دایرکتوری مورد نظرتان بروید، سپس از دستور cd استفاده کنید. به طور مثال اگر می خواهید وارد دیرکتوری به نام etc را شوید باید دستور زیر را وارد کنید:
cd etc
زمانی که داخل دیرکتوری شدید برای لیست کردن محتوای آن از دستور زیر استفاده کنید:
ls -la
همانطور که در تصویر زیر نشان داده ام، این دستور تمام فایل ها را به همراه سطوح دسترسی Unix آن ها مشخص می کند:
داخل ترمینال من رنگ دیرکتوری ها آبی و رنگ فایل ها سفید است اما ممکن است در ترمینال شما رنگ ها فرق کند. در اولین ستون از سمت چپ می توانید سطوح دسترسی را ببینید؛ به طور مثال drwxr-xr-x
یک سطح دسترسی است. این سطوح دسترسی بر اساس قوانین زیر ساخته می شوند:
زمانی که مالکان یک فایل سطح دسترسی خاصی نداشته باشند، Unix از علامت –
استفاده می کند. به طور مثال سطح دسترسی drwxr-xr-x
به معنای زیر است:
به غیر از حالت عادی (استفاده از حروف rwx) حالت عددی نیز وجود دارد. این مسئله مهم است چرا که در cPanel از حالت عددی استفاده می شود (terminal هم حالت عددی را قبول می کند). اعداد آن از این قرار هستند:
به طور مثال:
اکثر سیستم های مدیریت محتوا (CMS) از همان سطوح دسترسی استفاده می کنند که روی وب سایت باشد. به طور مثال وردپرس از 755 و 644 استفاده می کند.
اگر وارد CPanel و محیط مدیریتی خود شوید و سپس به File Manager بروید می توانید انواع سطوح دسترسی را ببینید. تصویر زیر از یک سایت وردپرسی است که سطوح دسترسی را در سمت راست تصویر دارد:
همانطور که می بینید وردپرس برای فایل های اصلی از سطوح 755 و 644 استفاده می کند. در تصویر بالا فایل htaccess. را روی 404 قرار داده ایم چرا که از حالت پیش فرض (644) امن تر است. البته محدود کردن دسترسی فایل htaccess. ممکن است باعث بروز مشکلاتی در بعضی از سرورها بشود. شما باید خودتان امتحان کنید و امن ترین حالت را پیدا کنید. اگر سطح 404 باعث خطا شد از سطح 444 استفاده کنید.
برای تغییر این سطوح دسترسی کافی است روی فایل راست کلیک کرده و گزینه ی Change Permissions را پیدا کنید:
یکی دیگر از راه های تغییر سطح دسترسی از طریق دستور chmod در ترمینال است. ابتدا با همان دستور cd به دایرکتوری مورد نظر خود بروید و دستور زیر را در آن تایپ کنید:
chmod 644 [yourfile]
این کد سطح دسترسی را به 644 تغییر می دهد. البته اگر مالک فایل نیستید باید از دستور Sudo نیز استفاده کنید:
sudo chmod 644 [yourfile]
اگر می خواهید سطح دسترسی تمام فایل ها و پوشه های یک دیرکتوری را تغییر دهید کافی است از دستور R- استفاده کنید:
sudo chmod 644 -R [yourdirectory]
امیدوارم از مقاله سطح دسترسی در UNIX و امنیت سایت استفاده کرده باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.