کدهای دسترسی لینوکس چگونه کار می کنند؟

کدهای دسترسی لینوکسپیش از این شما کاربران عزیز را با مسائل امنیتی و مورد نیاز مدیران سرور و سایت آشنا ساختیم و گفتیم که یکی از مباحثی که باید برای پیشگیری از مسائل و مشکلات امنیتی و افزایش ضریب اطمینان مدیر سایت انجام شود، بررسی و اطمینان از صحت سطح دسترسی های هر فایل بود. کاربران SERVER.ir می دانید که هاست لینوکس داخل و خارج ایران میزبان تارنمای ایران در زمان نوشتار این مطلب با آخرین نسخه کنترل پنل سی پنل ارائه می گردد و هاست ویندوز نیز دارای آخرین نسخه کنترل پنل پلسک می باشد که در هر دو هاست مذکور به منظور بررسی و تغییر سطح دسترسی های هر فایل مدنظر خود می توانید وارد کنترل پنل هاست خود شوید و از گزینه رو به روی فایل مورد نظر بر روی Change Permission کلیک نموده و از این طریق پروسه مورد نظر خود را به اجرا برسانید. در این زمینه روشن است که در هاست ویندوز موضوع به سادگی قابل پیگیری است چرا که سطح دسترسی های مختلف کاربر، بازدیدکننده، پلسک و… نمایش داده می شود و شما انتخاب می نمایید هر کدام این افراد دارای چه سطحی از سطوح دسترسی باشند اما نکته فابل توجه در مورد هاست لینوکس میباشد. در لینوکس هنگامی که شما هاست سی پنل دارید باز هم موضوع به سادگی قابل پیگیری است چرا که با رجوع به بخش Change Permissions شما یک جدول 3 * 3 خواهید دید که هر یک از سطر و ستون های آن شامل مشخصه منحصر به فردی از کاربران و سطح دسترسی هر یک می باشد و شما با تیک زدن و تنظیم این جدول، خواهید دید که کد سه رقمی معادل سطح دسترسی امنیتی این فایل تغییر خواهد نمود. به عبارت دیگر این امکان سی پنل در نظر دارد تا بتواند بدون نیاز به علم به نحوه تغییر سطح دسترسی با استفاده از یک جدول 3*3 به شما کمک کند تا سطح دسترسی مدنظر خود را انتخاب نمایید و سپس این کنترل پنل برتر جهان، آن را به معادل کد لینوکس تبدیل و از آن کد سه رقمی برای مشخص کردن سطح امنیت آن فایل استفاده خواهد نمود. و علاوه بر این مدیران سرورهای لینوکس و یا کاربران لینوکسی مجزا و مستقل از کنترل پنل سی پنل هنگامی که بخواهند سطح دسترسی فایلی را تغییر دهند معادل کد سه رقمی سطح دسترسی آن را به فایل می دهند تا امنیت فایل فراهم شود. در این متن در نظر داریم فرآیند و الگوریتم استفاده از این کد سه رقمی کاربردی را مطرح نماییم.

لینوکس و اکثر سیستم های یونیکس سه سطح دسترسی کاربری به صورت زیر دارند:

– کاربر (User: U): مالک (Owner) فایل

– گروه (Group: G): کاربر دیگری که به منظور دسترسی فایل ها در گروه مالک فایل هستند

– دیگران (Other: O): هر فرد دیگری

علاوه بر این برای هر فایل می توان روابطی را که تعریف نمود که سطح دسترسی لینوکس و یونیکس به صورت های زیر تعریف می شوند:

– خواندن (Read: R)

– نوشتن (Write: W)

– اجرا کردن (Execute: E)

و البته هر یک از سه سطح دسترسی و یا فعالیت فوق برای سند (File) و پوشه (Directory) معانی متفاوتی دارد که بدینصورت است:

دسترسی های خواندن لینوکس (Read Mode):

– دسترسی خواندن فایل یا سند به شما اجازه می دهد که یک فایل را ببینید.

– دسترسی خواندن دایرکتوری یا پوشه به شما اجازه می دهد که محتویات آن پوشه را توسط دستور ls مشاهده نمایید.

دسترسی های نوشتن (Write Mode):

– دسترسی نوشتن یک فایل یا سند به شما اجازه می دهد که بر روی یک سند بنویسید.

– دسترسی نوشتن یک پوشه به شما اجازه حذف و یا افزودن به سندهای داخل آن پوشه را می دهد.

دسترسی های اجرا کردن (Execute Mode):

– دسترسی اجرا کردن فایل ها به شما اجازه اجرا کردن آن برنامه و یا کدنوشته (اسکریپت: Script) را می دهد.

– دسترسی اجرای یک پوشه به شما اجازه دسترسی به فایل های درون ان پوشه را به شما می دهد.

عددهای بر مبنای هشت و سطوح دسترسی

حال که سطح دسترسی ها و کاربران پیش فرض لینوکس را شناختید موضوع خیلی ساده خواهد بود. اکنون به دنبال این موضوع خواهیم بود که این تنظیمات و دسترسی های مذکور طبق چه اصول و قوانینی به یک کد سه رقمی معادل تبدیل می شوند. هر یک از دسترسی های خواندن، نوشتن و اجرا کردن لینوکس، یک مشخه عددی بر مبنای هشت دارند که آن عدد نشانگر این سطح دسترسی خواهد بود:

r: 4

w: 2

x: 1


بنابراین هر زمان که بخواهیم سطح دسترسی هر یک از فعالیت های فوق را به کاربری اختصاص دهیم عدد معادل آن را نمایش خواهیم داد. حال فرض بفرمایید در نظر داریم به مالک یک پوشه سطح دسترسی خواندن،نوشتن و اجرا (سطح دسترسی کامل) اختصاص دهیم. در این محاسبه کد هشت تایی آن به صورت زیر محاسبه خواهد شد:

r+w+x = 4+2+1 = 7

:برای فایلی که تنها دسترسی خواندن و نوشتن برای آن تعریف می شود تنها اعداد 4 و 2 در مجموعه ما محاسبه خواهد شد و معادل عددی اجرا کردن آن صفر خواهد بود بنابراین
r+w+x = 4+2+0 = 6

:و برای سطح دسترسی خواندن و اجرا کردن نیز
r+w+x = 4+0+1 = 5

طبق راه فوق معادل کد هشت بیتی سطح دسترسی را برای کاربر، گروه و دیگران تعیین می کنیم و سپس عدد سه رقمی نهایی مدنظر از کنار هم چیدن کدهای محاسبه شده به دست می آید بدینصورت که از سمت چپ اولین رفم نمایانگر عدد 8 رقمی حاصل از مجموع مشخصه های سطح دسترسی برای کاربر، رقم میانی نمایانگر عددنهایی سطح دسترسی گروه و عدد آخر نمایانگر سطح دسترسی دیگران خواهد بود. بنابر این به طور مثال برای سندی که در آن، کاربر بتوان فایل را بخواند، ویرایش کند و اجرا کند، گروه کاربری بتواند سند را فقط بخواند و ویرایش کند و دیگران تنها بتوانند آن را اجرا کنند هر یک از سطح دسترسی ها به صورت زیر محاسبه خواهد شد:
User = r+w+x = 4+2+1 = 7
Group= r+w+x = 4+2+0 = 6
Others = r+w+x = 0+0+1 = 1

و در نهایت کد صحیح سطح دسترسی امنیتی یا فایل 761 خواهد بود.

دستور chmod
برای کاربران هاست اشتراکی SERVER.ir تا این مرحله کافی بود و نیاز به مطالعه این بخش از مقاله نمی باشد و این بخش صرفاً به منظور کسب اطلاعات بیشتر در این زمینه و برای مدیران سرور مطرح می گردد. چرا که همانطور که پیش از این ذکر شد کاربران هاست اشتراکی با استفاده از راه حال فوق می توانند سطح دسترسی مورد نظر را برای فایل خود بیابند و سپس در بخش File manager کنترل پنل خود از رو به روی فایل مدنظر بر روی Change Permission کلیک نموده و این عدد را وارد نمایند و یا حتی بدون استفاده از این روش در جدولی که خواهند دید علامت سطح دسترسی مدنظر برای هر کاربر را فعال نمایند تا کد آن به صورت خودکار تغییر یابد اما کاربران سرورهای مجازی و اختصاصی لینوکس که نیاز به تغییر این سطح دسترسی از طریق دستورات لینوکس و SSH دارند می بایست پس از محاسبه عدد فوق با استفاده از دستور chmod این عدد را به فایل مدنظر به صورت زیر اختصاص دهند:
 نام فایل سطح دسترسی chmod

به طور مثال برای دادن طرح دسترسی 761 به یک فایل پس از ورود به سرور لینوکس خود از طریق نرم افزار Putty و رجوع به دایرکتوری حاوی فایل مدنظر دستور زیر را اجرا می نمایید:
نام فایل 761 chmod
و برای ایجاد سطح دسترسی که خواندن فایل برای همه میسر باشد اما تنها مالک فایل بتواند آن را ویرایش کند:
نام فایل 644 chmod
و برای ایجاد سطح دسترسی یک فایل که قابل خواندن و اجرا توسط همه باشد و تنها مالک فایل بتواند آن را ویرایش کند:
نام فایل 755 chmod

علاوه بر این شما می تواند برای تغییر سطح دسترسی های تمام اسناد و پوشه های داخل یک دیرکتوری پارامتر R- را به دستور chmod بیفزایید. برای مثال به منظور ایجاد سطح دسترسی خواندن و اجرای تمام فایل برای دیگران در مورد تمام فایل ها و پوشه های یک دیرکتوری خاص می توانید از دستور زیر کمک بگیرید:
نام فایل 755 chmod -R

البته به این نکته نیز توجه داشته باشید که در این نوع استفاده از دستور فوق شما علاوه بر تغییر سطح دسترسی های محتویات، تمام دسترسی های اسناد و پوشه های داخلی نیز تغییر خواهد کرد. به عبارت دیگر تمام فایل های نشأت گرفته از پوشه شما و تمام محتویات مستقیم و غیر مستقیم مورد تغییر قرار خواهد گرفت. امیدواریم این مقاله SERVER.ir نیز اندکی به کسب اطلاعات بیشتر در زمینه میزبانی و مدیریت سرورهای لینوکس به شما کاربران عزیز کمک نموده باشد.