آشنایی با مجوزهای دسترسی گنو/لینوکس

0
Telegram_GEEKBOY

Linux_dir_listing-420x193

«مسئله‌ی دسترسی»، ریشه در سیستم عامل گنو/لینوکس و به طور مشخص «دسترسی‌ها در لینوکس» دارد. آنچه در اینجا مطرح می‌شود برای افرادی که تجربه‌ی زیادی در کار با این سیستم عامل ندارند ممکن است کمی نامانوس باشد ولی جای نگرانی نیست. سعی می‌کنیم این مفاهیم را به شکلی ساده و قابل فهم بیان کنیم.


در گنو/لینوکس مبنای همه‌ چیز فایل است. هر فایل علاوه بر اینکه «مالک» دارد، مشخصه‌ای به نام «گروه مالک» نیز دارد و این موضوع در همه‌ی سیستم‌ عامل‌های یونیکس-مبنا صادق است. پس هر «چیز» در دنیای لینوکس، یک «فایل» است که مالک و گروه مالکی دارد. با این دید، در برخورد با «چیزها» سه حالت برای شما (بعنوان یک کاربر) اتفاق می‌افتد: یا شما مالک آن «چیز» هستید، یا عضوی از گروهی که مالک آن «چیز» هستند یا هیچ کدام! اصطلاحا جزء «افراد متفرقه» هستید.. یکی از همان‌هایی که احتمالا مالک و اعضای گروه مالک به شما «دیگران» می‌گویند.

در سیستم تعیین دسترسی گنو/لینوکس، با فایل‌ها به همین شکل رفتار می‌شود. یعنی در دسترسی به فایل، کاربر در یکی از این سه دسته قرار می‌گیرد مالک (owner)، گروه مالک (owner group) و یا دیگران (others).

simple_linux_permission

به نظر شما این سطح دسترسی کفایت می‌کند؟

نظر توسعه دهندگان همین بوده است. این سیستم تعیین سطح دسترسی لازم است ولی کافی نیست. تصور کنید، شما مالک «چیزی» باشید. مثلا یک دفترچه یادداشت. ممکن است بخواهید علاوه بر خودتان گروه دوستانتان هم بتوانند آن را «بخوانند» و حتی در آن یادگاری «بنویسند» ولی دیگران فقط بتوانند آن را «بخوانند». یا اگر یادگاری‌های شما خیلی خودمانی باشد، ممکن است حتی نخواهید دیگران از وجود آن دفترچه اطلاعی داشته باشند. در سیستم تعیین دسترسی نیز چیزی شبیه این مکانیزم وجود دارد. مالک فایل می‌تواند تعیین کند که هر یک از سه دسته افراد «مالک» (یعنی خودش)، «گروه مالک» (احتمالا دوستانش!) و «دیگران» بتوانند کدامیک از اعمال «خواندن»، «نوشتن» و یا «اجرا کردن» را بر روی فایل انجام دهند. مالک می‌تواند همه‌ی این دسترسی‌ها را با هم به یک دسته یا به همه‌ی دسته‌ها بدهد.

real_linux_permissions

به عنوان مثال، مالک فایل می‌تواند تعیین کند که خودش، هم بتواند فایل را بخواند، هم بر روی آن بنویسد و هم آن را اجرا کند. دوستانش فقط بتوانند فایل را بخوانند و بر روی آن بنویسند ولی نتوانند آن را اجرا کنند و دیگران فقط بتوانند فایل را بخوانند، نه چیزی بر روی آن بنویسند و نه بتوانند آن را اجرا کنند.

بسیار خب موافقید که این داده‌ها را (کمی؟) کاربردی کنیم؟

مبانی عملی

دو دستور در گنو/لینوکس برای تعیین و تغییر این مجوزها وجود دارد:

  • دستور تغییر مالک/گروه مالک : chown
  • دستور تغییر دسترسی کاربران: chmod

اگر فایلی به نام test.txt داشته باشیم، با کمک دستور زیر در ترمینال می‌توانیم مجوزهای دسترسی و مالک آن را پیدا کنیم:

ls -l test.txt

خروجی این دستور چیزی شبیه این خواهد بود:

ls-l2

واضح است که در قسمت مربوط به «مالک» و «گروه مالک»، به ترتیب نام کاربری و گروه کاربری درج می‌شود. در قسمت مجوزها اوضاع شاید کمی پیچیده به نظر برسد ولی ببینید:

permissions

در گنو/لینوکس مجوزهای دسترسی با حروف مخفف دسترسی‌ها مشخص می‌شوند:

  • «خواندن»، معادل r
  • «نوشتن»، معادل w
  • «اجرا کردن»، معادل x

به این ترتیب، قسمت مجوزهای این خروجی اعلام می‌کند، مالک فایل test.txt می‌تواند هم فایل را بخواند و هم بر روی آن بنویسد؛ کاربرانی که عضو گروه مالکان هستند، فقط می‌توانند فایل را بخوانند و دیگران هم فقط می‌توانند فایل را بخوانند.

تغییر مالک فایل test.txt

اگر فایلی به نام test.txt داشته باشیم، برای تغییر مالک آن به کاربر root می‌توانیم چنین بنویسیم:

chown root test.txt

خروجی را با دستور ls به شکلی که پیش‌تر مطرح شد، می‌توانید ببینید.
توجه کنید که برای اجرای این دستور می‌بایست یا کاربر root باشید یا اینکه عضوی از گروه مدیران سیستم باشید و این دستور را با sudo اجرا کنید.

برای عوض کردن مالک به root و گروه به video نیز می‌توانیم بنویسیم:

chown root:video test.txt

تغییر مجوزهای دسترسی

برای تغییر مجوزهای دسترسی، باید از دستور chmod کمک بگیریم.
این دستور را در نظر بگیرید:

chmod u+rwx,g+rx-w,o+w test.txt

توجه کنید که اگر مالک فایل نباشید می‌بایست دستور را با sudo اجرا کنید.

در این دستور:

مجوزهای rwx (خواندن، نوشتن و اجرا) به مجوزهای قبلی مالک اضافه شده است. (قبل از آن‌ها علامت + آمده است)

مجوزهای rx (خواندن و اجرا) به مجوزهای قبلی گروه مالک اضافه (+) شده و مجوز w (نوشتن) از این گروه گرفته شده (قبل از آن علامت منها (-) آمده است)

مجوز w (نوشتن) به مجوزهای قبلی دیگران اضافه (+) شده است.

به بیان تصویری:

chmod

چند نکته:

می‌توانید مجوز را برای مالک یا گروه مالک یا دیگران تعریف کنید، نیازی نیست در تعیین مجوزها هر سه را با هم ذکر کنید. فراموش نکنید که بین تعریف مجوزها برای مالک، گروه مالک و دیگران از کاراکتر ویرگول «,» استفاده کنید.

جمع بندی

در این مقاله تلاش کردیم به بیانی ساده به بررسی سیستم تعیین دسترسی لینوکس بپردازیم. برای اینکه مقاله از حالت تئوری محض خارج شود، دو دستور chmod و chown را نیز مختصرا مطرح کردیم. متشکریم از اینکه این مقاله را تا اینجا خواندید، امیدوارم این مقاله مفید واقع شده باشد.

منبع: linuxreview

در صورتی که مطالب سایت برای شما مفید بوده است، می توانید از طریق لینک زیر از سایت حمایت کنید.

ممکن است شما دوست داشته باشید بیشتر از نویسنده

ارسال یک نظر

آدرس ایمیل شما منتشر نخواهد شد.