آشنایی با فایل پرمیشن در لینوکس
لینوکس یک سیستم عامل چند کاربره است و همه دایرکتوری ها و فایل هایی که در داخل آن وجود دارند ممکن است برای همه قابل دسترس باشد ، به همین منظور برای محافظت از آنها در برابر دسترسی های غیرمجاز از Permission ها استفاده می کنیم
در مقدمه اشاره کوتاهی به مفهوم سطح دسترسی داشتیم، اما در این بخش میخواهیم یک بار برای همیشه با مفهوم سطحی فایل پرمیشن در لینوکس آشنا شویم.
کلمه Permission در کلمه به معنای اجازه نامه، اجازه دادن یا دسترسی است. در هر سیستم عاملی مفهوم سطح دسترسی وجود دارد و عملا نمیتوانید سیستم عاملی را ببینید که در آن مفهوم سطح دسترسی مورد بررسی و استفاده قرار نگرفته باشد.
سطح دسترسی مشخص میکند که یک کاربر (یا گروهی از کاربران) میتوانند چه امتیازات یا اجازه نامههایی داشته باشند. به عنوان مثال، من یک پوشه با نام Netafraz در سیستم ویندوزی خودم ایجاد میکنم. با راست کلیک کردن بر روی این پوشه و سپس کلیک بر روی گزینه Properties، میتوانم جزئیات این پوشه را مشاهده کنم. اگر به سربرگ “Security” این پوشه بروم، دقیقا میتوانم گروههای کاربری و سطح دسترسیهای داده شده به هر گروه کاربری را مشاهده کنم.
پیشنهاد ما: آموزش لینوکس
مجوز فایل در لینوکس چگونه کار میکند؟
بر خلاف پیچیدگی فایل پرمیشن در سیستم عامل ویندوز، عملکرد فایل پرمیشن لینوکس بسیار ساده است. در سیستم عامل لینوکس فایل پرمیشن در سه بخش برای هر فایل و یا دایرکتوری قابل تنظیم است.
- مالک فایل (Owner): تعیین سطح دسترسی برای مالک فایل
- گروه (Group): تعیین سطح دسترسی برای گروه های کاربری
- همه کاربران (All Users): تعین سطح دسترسی برای دیگر کاربران
پیشنهاد ما: اتصال به سرور لینوکس
انواع سطح دسترسی
به طور کلی در لینوکس سه سطح دسترسی وجو دارد که از قرار زیر میباشند:
- خواندن (Read): در این سطح دسترسی کاربر فقط میتواند محتوای فایل و یا دایرکتوری را بخواند.
- نوشتن (Write): در این سطح دسترسی کاربر میتواند یک فایل را ویرایش کرده و یا در یک دایرکتوری فایل ایجاد کند.
- اجرا کردن (Execute): در این سطح کاربر میتواند یک فایل را اجرا کند و یا محتوای کی دایرکتوری را بررسی کند.
بررسی مجوز فایل ها در لینوکس:
شاید باور نکنید اما در بالا تمام آنچه که میبایست درباره فایل پرمیشن در لینوکس بدانید توضیح داده شد. حال چگونه میتوانیم مجوزهای هر فایل و یا دایرکتوری را بررسی کنیم؟
برای بررسی مجوز فایلها و دایرکتوری ها در لینوکس کافیست در ترمینال از دستور ls به همراه پارامتر l استفاده کنید. برای مثال:
ls -l
همانطور که در تصویر بالا مشاهده میکنید (اولین کلمه در هر خط drwxr-xr-x)حرف اول هر خط نوع فایل و یا دایرکتوری مشخص میشود. (اگر حرف اول d باشد نام فهرست گرفته شده دایرکتوری است و اگر علامت – باشد فایل است)
سطح دسترسی مالک: بعد از اولین کاراکتر، سطح دسترسی مالک فایل مشخص شده است که برای دایرکتوری های موجود در عکس با rwx است.
سطح دسترسی گروه: بعد از مجوزهای مرتبط با مالک فایل سطح دسترسی گروه مشخص شده است که در بالا برای دایرکتوری ها مقدار r-x میباشد.
یعنی گروه های که حق دسترسی به دایرکتوری های موجود در تصویر بالا را دارند فقط مجوز بررسی و دیدن محتوای دایرکتوری ها را دارند.
سطح دسترسی همه: در آخر سطح دسترسی همه کاربران به جز مالک و گروه های کاربری مشخص شده است که مقدار r-x میباشد. یعنی همه میتوانند محتوای دایرکتوری های بالا را بررسی کنند.
تغییر سطح دسترسی با دستور chmod
برای ویرایش فایل پرمیشن در لینوکس میتوان از دستور chmod استفاده کرد. با استفاده از دستور chmod میتوان سطح دسترسی به یک فایل و یا دایرکتوری را برای مالک، گروه کاربری و همه کاربران به صورت یکجا و جداگانه تنظیم نمود.
برای تنظیم جداگنه مجوز یک فایل و یا دایرکتوری باید از حروف u,g,o,a استفاده نمود و بعد از آن مجوزهای که میخواهید به یک فایل و یا دایرکتوری بدهید را با علامت + مشخص کنید و یا با علامت – آنها را حذف کنید.
u = Owner | g = Group | o = Other | a = All Users
مثلا برای افزودن سطح دسترسی خواندن و نوشتن و اجرا کردن به مالک یک فایل دستور chmod به شکل زیر نوشته میشود:
chmod u+rwx filename
و یا برای حذف دسترسی نوشتن و اجرا کردن از مالک یک فایل، دستور chmod به شکل زیر نوشته میشود:
chmod u--wx filename
تنظیم فایل پرمیشن با عدد
روش دیگری که میتوانید به سادگی کلیه پرمیشن های یک فایل و یا دایرکتوری را به صورت یکجا برای مالک، گروه های کاربری و همه کاربران تغییر دهید استفاده از کد عددی فایل پرمیشن است. برای منظور ابتدا باید معادل عددی انواع مجوز آشنا شوید:
- مجوز عددی اجرا کردن (Execute) عدد ۱ است.
- مجوز عددی نوشتن (Write) عدد ۲ است.
- مجوز عددی خواندن (Read) عدد ۴ است.
مجموع این اعداد ۷ میشود و اگر به یک کاربر و یا گروه کاربری (عدد ۷ به عنوان مجوز) اختصاص داده شود آن کاربر دسترسی کامل به آن فایل خواهد داشت.
برای مثال اگر بخواهیم مالک فایل دسترسی کامل داشته باشد (۷) و گروه های کاربری دسترسی خواندن و نوشتن (۶) و گروه همه کاربران فقط دسترسی خواندن (۴) داشته باشند دستور chmod به شکل زیر نوشته میشود:
chmod 764 filename
در مثال بعد به همه کاربران فقط سطح دسترسی خواندن داده میشود:
chmod 444 filename
جدول فایل پرمیشن لینوکس
در ادامه جدول مجوز فایلها در لینوکس را مشاهده میکنید که انواع سطوح دسترسی به همراه کد عددی آنها را نمایش میدهد:
نماد | سطح دسترسی | مجوز عددی |
— | بدون دسترسی | ۰ |
x– | اجرا کردن | ۱ |
-w- | نوشتن | ۲ |
wx- | نوشتن +اجرا کردن | ۳ |
–r | خواندن | ۴ |
r-x | خواندن + اجرا کردن | ۵ |
-rw | خواندن + نوشتن | ۶ |
rwx | خواندن + نوشتن + اجرا کردن | ۷ |