حق دسترسی در لینوکس
کاربران عزیز کامیت سرور، میدانید که یکی از راههای افزایش امنیت این است که هر فایل سطح دسترسی مناسب خود را داشته باشد.
برای تنظیم این عدد کافیست پس از ورود به کنترل پنل هاست، از روبروی هر فایل با انتخاب گزینه Change Permission دسترسی فایل مورد نظر را تنظیم کنید.
در هاستهای ویندوز مسأله وضوح بیشتری دارد یعنی گزینههای مختلف مانند بازدیدکننده، کاربر و… بیان شدهاند
و شما به راحتی میتوانید تعیین کنید که هز کدام از این افراد سطح دسترسیشان چقدر باشد.
اما این فرآیند در هاست لینوکس متفاوت است. وقتی شما بر روی هاست خود از Cpanel استفاده میکنید،
با مراجعه به بخش Change Permissions میتوانید سطح دسترسیها را تنظیم کنید.
اما کار از آنجا متفاوت میشود که در این بخش یک جدول ۳*۳ وجود دارد و هر سط و ستون آن مربوط به یک نوع کاربر و سطح دسترسی اوست.
پس از تنظیم این جدول یک عدد سه رقمی که نشانهی میزان دسترسی فایل است، تغییر خواهد کرد.
در واقع این کنترل پنل قدرتمند این امکان را به شما میدهد که بدون دانش کدهای لینوکس و با استفاده از یک جدول ۳*۳ سطح دسترسی فایل را تعیین کنید،
سپس خود کنترل پنل آن را به کد لینوکس تبدیل خواهد کرد.
اما هنگامی که مدیران هاست و سرور بخواهند بدون استفاده از Cpanel سطح دسترسی فایل را تغییر دهند،
معادل آن کد سه رقمی را به فایل میدهند.
در این مطلب میخواهیم مکانیزم استفاده از این کد سه رقمی را بیان کنیم.
دسته بندی سطوح دسترسی لینوکس
سطح کاربری در لینوکس و بیشتر سیستمهایی که از یونیکس استفاده میکنند، به سه سطح تقسیم میشوند:
– کاربر (user:U) که مالک (Owner)فایل است.
– گروه (Groupe: G) کاربرانی که به فایلها دسترسی دارند و در واقع در گروه مالک فایل قرار میگیرند.
– دیگران (Other: O) همه افراد بجز افرادی که در بالا ذکر شدند.
همچنین در این سیستمعاملها، میتوان روابطی را برای هر فایل تعریف کرد:
– خواندن (Read: R)
– نوشتن (Write: W)
– اجرا کردن (Execute: E)
البته قابل ذکر است که هر کدام از موارد بالا برای برای فایل و دایرکتوری معانی خاصی دارند.
دسترسی خواندن لینوکس (Read)
– این حالت برای فایل، اجازهی دیدن آن فایل را میدهد.
– و برای دایرکتوری باعث میشود که شما بتوانید محتویات آن دایرکتوری را ببینید. (توسط دستور ls)
دسترسی نوشتن (Write)
– این حالت برای فایل، مجوز نوشتن بر روی آن فایل را به شما میدهد.
– و برای دایرکتوری مجوز حذف فایل از آن دایرکتوی یا اضافه کردن فایل به آن را میدهد.
دسترسی اجرا کردن (Execute)
– این حالت برای فایل، مجوز اجرا کردن آن فایل را میدهد.
– و برای دایرکتوی, مجوز اجرای فایلهای آن دایرکتوی را میدهد.
سطوح دسترسی و عددهایی بر مبنای هشت
اکنون که شما با انواع گروههای کاربری و همچنین سطوح دسترسی آشنا شدید،
حال میخواهیم بدانیم کد سه رقمی (که در بالا توضیح دادیم) چگونه و طبق چه قوانین ساخته میشود:
برای هر کدام از سه سطح دسترسی یعنی خواندن، نوشتن و اجرا کردن در لینوکس یک عدد وجود دارد که نشاندهندهی آن سطح از دسترسی است:
– R:4
– W:2
– X:1
بدین ترتیب هر وقت بخواهیم هر یک از دسترسی های بالا را به کاربر بدهیم، عدد معادل آن را نشان خواهیم داد.
برای مثال اگر بخواهیم به یک کاربر دسترسی کامل (یعنی هر سه دسترسی) را بدهیم،
کد هشتتایی آن به این صورت محاسبه میشود:
R+x+w= 4+2+1 = 7
اگر بخواهیم اجازهی خواندن و نوشتن بدهیم بدین صورت خواهد بود:
r+w+w = 4+2+0= 6
و اگر بخواهیم فقط مجوز دسترسی خواندن و اجرا کردن را بدهیم به این صورت:
r+x+w = 4+0+1 = 5
با این روش ما معادل کد هشتبیتی را برای سه سطح کاربر، گروه و دیگران محاسبه میکنیم.
در حقیقت عدد سه رقمی مورد نظر ما از کنار هم گذاشتن حاصل این محاسبات به دست میآید
یعنی از سمت چپ اولین رقم مربوط به سطح دسترسی کاربر، رقم میانی مربوط به سطح دسترسی گروه و رقم آخر مربوط به سطح دسترسی دیگران است.
بدین ترتیب اگر ما بخواهیم سطح دسترسی فایل را اینگونه تعریف کنیم که :
کاربر دسترسی کامل داشته باشد (r,wx)، گروه بتواند بخواند و ویرایش کند و دیگران فقط بتوانند اجرا کنند،
محاسبات به صورت زیر خواهد بود:
User: r+w+x = 4+2+1= 7
Groupe: 4+2+0= 6
Others: 0+0+1 = 1
پس عدد سه رقمی ما ۷۶۱ خواهد بود.
دستور chmod
تا اینجای کار برای کاربرانی که از سرویس هاست اشتراکی کامیت سرور استفاده میکنند کافی بود.
زیرا این کابران میتوانند پس از محاسبه عدد سه رقمی از بخش File Manager و روبروی هر فایل عدد را تغییر دهند یا با استفاده از جدول ۳*۳ این کار را انجام دهند.
این بخش از مطلب برای آن دسته از عزیزانی است که میخواهند اطلاعات بیشتر کسب کنند یا اینکه مدیر سرورهای اختصاصی و مجازی لینوکسی هستند.
این کاربران باید از طریق بخش SSH و دستورات لینوکس پس از محاسبهی عدد سه رقمی مورد نظر، آن را با استفاده از دستور chmod به فایل تخصیص بدهند:
نام فایل، سطح دسترسی، chmod
مثلا اگر بخواهید به یک فایل دسترسی ۷۷۱ را بدهید، ابتدا باید وارد سرور بشوید و سپس از طریق نرم افزار Putty مسیر فایل مورد نظر را پیدا کنید، بعد از آن دستور زیر را اجرا کنید:
نام فایل ۷۷۱ chmod
همچنین اگر قصد داشته باشید به تمام فایلهای یک مسیر، عدد دسترسی خاصی بدهید، میتوانید از عبارت –R استفاده کنید. بدین صورت :
نام فایل ۷۷۱ chmod –R
با این کار تمام فایلهایی که تحت آن مسیر(پوشه) قرار دارند و حتی محتویات پوشههایی که در آن مسیر قرار دارند تغییر خواهد کرد.
امیدواریم این مطلب از کامیت سرور برای شما مفید بوده باشد.