مجوزها در لینوکس

مجوزها در لینوکس
مجوزها در لینوکس
9 ماه پیش

مجوزها در لینوکس

سیستم عامل یونیکس ( و نیز لینوکس ) با سیستم های محاسباتی دیگر تفاوت دارند و نه تنها سیستم عامل های چند کاره بلکه سیستم عامل چند کاربره هستند.
معنی چند کاره بودن دقیقا چیست؟ یعنی همزمان بیشتر از یک کاربر میتوانند با سیستم عامل کار کنند ، در حالی که کامپیوتر شما فقط یک کیبورد و یک مانیتور دارد با این حال بیشتر از یک کاربر میتوانند همزمان با سیستم عامل کار کنند. به عنوان مثال اگر کامپیوتر شما به شبکه یا اینترنت وصل شده باشد، کاربران ریموت میتوانند با SSH یا Telnet لاگین کرده و با کامپیوتر کار کنند. در حقیقت کاربران ریموت میتوانند برنامه های خاص را اجرا کنند و خروجی گرافیکی داشته باشند که در کامپیوتر ریموت نشان داده شود. سیستم X Windows این دارای این ویژگی هست.
خاصیت چند کاربره یونیکس نوآوری جدیدی نیست اما یکی از ویژگی هایی هست که بطور عمیق در طراحی سیستم عامل ریشه دوانده است. اگر محیطی را که در آن سیستم عامل یونیکس ایجاد شد را بخاطر بیاورید میتوانید این خصوصیت را بخوبی درک نمایید. سالها قبل، قبل از اینکه کامپیوترها شخصی بودند خیلی بزرگ ، گران و متمرکز بودند. سیستم کامپیوتر معمولی دانشگاه شامل یک کامپوتر پردازنده مرکزی بزرگ که در ساختمانی در محوطه دانشگاه بود و ترمینال ها هم در داخل محوطه قرار داشتند و هر کدام به کامپیوتر بزرگ مرکزی وصل شده بودند و این کامپیوتر مرکزی باید قادر میبود که همزمان تعداد زیادی کاربر را ساپورت نماید.
برای عملی کردن این کار لازم بود که روشی ابداع شود تا کاربران را از یکدیگر جدا سازد. و مهم تر از همه اینکه نباید اجازه داده شود که اقدامات یک کاربر باعث سقوط کامپوتر شود. و همچنین کاربران نباید به فایل های کاربران دیگر دسترسی داشته باشند.
آموزش امروز پیرامون دستورات زیر خواهد بود :

Chmod : تغییر حق دسترسی فایل
Su: بصورت موقت کاربر روت شدن
Chown: تغییر مالک فایل
Chgrp : تغییر صاحب گروه فایل

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

آموزش لینوکس

آموزش لینوکس

بجای some_file نام فایل مورد نظر را بنویسید.

با استفاده از نتیجه دستور فوق میتوانیم اطلاعات زیر را در مورد فایل بدست بیاوریم:
صاحب فایل فوق کاربر me میباشد
کاربر me مجوز خواندن و نوشتن این فایل را دارد
صاحب فایل گروه me میباشد
اعضای گروه me مجوز خواندن و نوشتن فایل را دارند
سایر کاربران مجوز خواندن فایل را دارند
مثالی دیگر: در این مثال برنامه bash را مورد بررسی قرار میدهیم که در دایرکتوری /bin قرار دارد:

آموزش مجوزها در لینوکس

آموزش مجوزها در لینوکس

نتیجه:
صاحب فایل /bin/bash کاربر root هست
کاربر روت مجوز خواندن ، نوسشتن و اجرای این فایل را دارد.
این فایل به گروه root تعلق دارد
اعضای گروه root میتوانند این فایل را خوانده و اجرا کنند.
سایر کاربران میتوانند این فایل را خوانده و اجرا نمایند.
در شکل زیر میبینیم که بخش اول نتیجه دستور فوق چگونه تفسیر میشود:
بخش اول شامل کاراکتری هست که نوع فایل را نمایش میدهد و در ادامه دارای سه بخش سه کاراکتری وجود دارد که مجوز خواندن ، نوشتن و اجرا را برای صاحب و گروه فایل و سایر کاربران را نشان میدهد.

درسترسی ها در لینوکس

درسترسی ها در لینوکس

کاراکتر اول نشان دهنده نوع فایل هست. کاراکتر” –” مشخص میکند که این یک فایل هست. و کاراکتر” d” مشخص میکند که یک دایرکتوری هست.
اولین سه کاراکتر از سمت چپ نشان دهنده مجوز خواندن، نوشتن و اجرای فایل توسط صاحب فایل هست.
سه کاراکتر بعدی نشان دهنده مجوز خواندن، نوشتن و اجرای فایل توسط اعضای گروهی هست که فایل به آن گروه اختصاص دارد.
و سه کاراکتر آخر نیز نشان دهنده مجوز خواندن، نوشتن و اجرای فایل توسط سایر کاربران هست.
دستور chmod:
از این دستور برای تغییر مجوز یک فایل یا دایرکتوری استفاده میشود. برای استفاده از این دستور، فایل و مجوز مورد نظر خود را انتخاب میکنید. دو راه برای تعریف مجوز برای فایل ها و دایرکتوریها وجود دارد ولی ما در این آموزش فقط یک روش را توضیح میدهیم:
برای راحتی کار، تنظیمات مجوزها را مجموعه ای از بیت ها در نظر میگیرند ( روشی که کامپیوتر با آن کار میکند ). روش کار مجوزها بصورت زیر است:
rwx rwx rwx = 111 111 111
rw- rw- rw- = 110 110 110
rwx — — = 111 000 000
و …
rwx = 111 معادل باینری 111 برابر عدد 7 میباشد.
rw- = 110 معادل باینری 110 برابر عدد 6 میباشد.
r-x = 101 معادل باینری 101 برابر عدد 5 میباشد.
r– = 100 معادل باینری 100 برابر عدد 4 میباشد.
حال اگر هر یک از سه مجموعه مجوزهای فوق ( مالک، گروه و سایر کاربران ) را با یک ععد واحد نشان دهید، یک روش مناسب برای بیان تنظیمات مجوزها خواهید داشت. برای مثال اگر بخواهیم به فایل some_file مجوز خواندن و نوشتن برای مالک فایل بدهیم ولی فایل از دسترس سایر کاربران محرمانه باشد و هیچ دسترسی به فایل نداشته باشند:

آموزش مجوزها در لینوکس

در زیر تنظیمات مجوزهای رایج را با توضیحات آنها ذکر میکنیم. فایل هایی که در مجوز خود دارای عدد 7 میباشند مربوط به برنامه ها هستند ( چون برنامه ها قابلیت اجرا نیز دارند) و سایرین مختص انواع دیگرفایل ها هستند:
مجوز 777 : (rwxrwxrwx ) مجوز بدون محدودیت هست. هر کسی ممکن هست هر کاری انجام بده. این مجوز بصورت عمومی مجوز مطلوبی نیست.
مجوز 755 (rwx—— ) مالک فایل مجوز خواندن ، نوشتن و اجرای فایل را دارد. سایر کاربران میتوانند فایل را خوانده و اجرا کنند. این مدل مجوز برای برنامه هایی رایج هست که توسط تمام کاربران استفاده میشود.
مجوز 700(rwx—— ) مالک فایل مجوز خوادن، نوشتن و اجرای فایل را دارد. دیگران هیچ مجوزی ندارند. این مجوز برای برنامه هایی مناسب است که فقط مالک برنامه باید از آن استفاده کند و سایر کاربران به آن دسترسی نداشته باشند.
مجوز 666 (rw-rw-rw- ) تمامی کاربران میتوانند فایل را خوانده و بنویسند.
مجوز 644 (rw-r–r–) صاحب فایل مجوز خواندن و نوشتن فایل را دارد در حالی که سایرین فقط میتوانند آن را بخوانند. این مجوز برای فایل هایی مناسب است که قابل ویرایش فقط توسط مالک فایل باشد و دیگران فقط بتوانند آن را بخوانند .
مجوز 600 (rw——-) مالک فایل مجوز خواندن و نوشتن فایل را دارد و سایر کاربران هیچ مجوزی ندارند. مناسب فایل هایی است که مالک فایل میخواهد برای خودش محرمانه باشد.
مجوزهای دایرکتوری ها:
با دستور chmod میتوانید مجوزهای دستررسی به دایرکتوریها را نیز تنظیم نمایید. اکثر مواقع تنظیم مجوزها برای دایرکتوریها مانند تنظیم مجوز به فایل ها میباشد ولی مجوز اجرا در دایرکتوریها به روش دیگری مورد استفاده قرار میگیرد. و کنترلی برای دسترسی به فهرست فایل ها فراهم میکند. چند مثال:
مجوز 777 (rwxrwxrwx ) مجوز بدون محدودیت: هر کسی میتواند فایل ها را لیست کند، فایل جدید در دایرکتوری ایجاد کند و یا فایلی از دایرکتوری حذف نماید. عموما این مجوز مناسب نیست.
مجوز 755 (rwxr-xr-x) مالک دایرکتوری تمام مجوز ها را دارد. سایر کاربران میتوانند فایل ها را لیست نمایند ولی نمیتوانند فایلی داخل دایرکتوری ایجاد یا حذف نمایند. این مجوز برای دایرکتوریهایی مناسب هست که صاحب آن میخواهد با دیگران به اشتراک گذارد.
مجوز 700 (rwx—— ) مالک فایل تمام مجوزها را دارد . سایر کاربران هیچ مجوزی ندارند. این مجوز برای دایرکتوریهایی مناسب است که مالک دایرکتوری میخواهد برای خودش اختصاصی باشد.
کاربر روت شدن برای مدت زمان کوتاه:
برای انجام کارهای مدیریتی سیستم ممکن است بخواهید با کاربر روت لاگین نمایید. ولی توصیه میشود که با کاربر روت لاگین ننمایید. در اکثر توزیع های لینوکس، برنامه ای بنام su ( مخفف substitute user) وجود دارد که این امکان را فراهم میکند که بصورت موقت امتیازهای کاربر روت را داشته باشید. و در زمانهایی که نیاز دارید برای تعداد محدودی از کارها، کاربر روت باشید، مورد استفاده قرار میگیرد. برای اینکه کاربر روت شوید فرمان su را در ترمینال وارد نمایید. از شما پسورد کاربر روت خواسته میشود.

su

برای خروج از کاربر روت دستور exit را اجرا کنید و به کاربر قبلی خود بازگردید.
در ابرخی توزیع ها بخصوص اوبونتو روشی جایگزین استفاده میشود. بجای استفاده از su از دستور sudo استفاده میکنند. با این دستور به تعدادی کاربر مجوزهای کاربر روت داده میشود. برای اجاری دستوری مثل کاربر روت باید دستور sudo را به ابتدای دستور مورد نظر اضافه نمایید تا با مجوز کاربر روت دستور مورد نظر را اجرا نماید. بعد از زدن کلید اینتر بجای درخواست پسورد کاربر روت در اینجا پسورد همان کاربر که فرمان sudo را زده است خواسته میشود.

 

تغییر مالک فایل:
با استفاده از دستور chown میتوانید مالک یک فایل را تغییر بدهید. برای مثال اگر بخواهم مالک فایل some_file را از me به you تغییر بدهم باید دستور زیر را وارد نمایم:

chownexit

توجه داشته باشید که برای تغییر مالک یک فایل باید کاربر روت باشید. بخاطر همین ما ابتدا دستور su و بعد chown را زده را و بعد از اجرای دستور مورد نظر فرمان exit را برای خروج از کاربر روت نوشته ایم.
دستور chown برای دایرکتوریها نیز مانند فایل ها کار میکند.
تغییر مالک گروه:
با دستور chgrp میتوان مالک گروه یک فایل یا دایرکتوری را تغییر داد.نحوه استفاده از این دستور به شکل زیر است:

chgrpfinal

در مثال بالا مالک گروه فایل some_file را از مالک اولیه آن به new_group  تغییر داده ایم. توجه داشته باشید که برای استفاده از دستور chgrp باید مالک فایل یا دایرکتوری باشید.

 

مریم علیزاده- نویسنده

10157
A
A