لینوکس و اکثر سیستم های یونیکس سه سطح دسترسی کاربری به صورت زیر دارند:
– کاربر (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 نیز اندکی به کسب اطلاعات بیشتر در زمینه میزبانی و مدیریت سرورهای لینوکس به شما کاربران عزیز کمک نموده باشد.