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

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

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

خب بهتره بریم سراغ مطلب امروز که معرفی و توضیح مجوز ها و سطوح دسترسی در لینوکس( یا پیشنهاد دوستان گنو/لینوکس) هست.

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

پس هسته سیستم عامل (که همون لینوکس هست) جوری طراحی شده که برای موارد استفاده در سرور ها ،‌شبکه ها و … بتونه به خوبی عمل کنه و پاسخگوی همه نیاز ها باشه .

سطوح دسترسی در لینوکس به سه بخش تقسیم میشه :

  • سطح دسترسی صاحب فایل
  • سطح دسترسی گروه فایل
  • سطح دسترسی دیگران (به قول یکی از دوستان غریبه‌ها 🙂 )

حالا هر سطح دسترسی ،‌سه مجوز داره :

  • مجوز خواندن
  • مجوز نوشتن
  • مجوز اجرا کردن

کوییز : در مجموع چند تا مجوز داریم؟ ساده بود 🙂 ، جوابش ۹ هست ،‌ هر سطح دسترسی ۳ مجوز داره که در مجموع ۹ مجوز داریم .

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

سطوج دسترسی یک فایل
سطح های دسترسی در یک فایل

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

-rw-rw-r--
1 hamid hamid

اگر دقت کنید ،‌ ۱۰ کارکتر اول سطوح دسترسی و مجوز های فایل ما هستن. بیاید یکم دقیق‌تر بهش نگاه کنیم :

شکل کلی دسترسی ها

امیدوارم رنگ امیزیم رو دوست داشته باشید . کلاً سلیقه خوبی دارم ،‌میدونم ،‌ مرسی 🙂 .

اولین کارکتر نوع فایل رو مشخص میکنه که ما در این آموزش بهش نمی‌پردازیم.

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

به همین ترتیب ۶ کارکتر بعد مجوز های گروه فایل و بقیه افراد هستن.

دو کلمه hamid هم بعد از ۱۰ کارکتر اول می‌بینم که اولین کلمه ، نام صاحب فایل و دومین کلمه نام گروه فایل هست.

شاید الان پیش خودتون بگید ، خب صاحب فایل که مشخصه، کسی هست که فایل رو ایجاد کرده و صاحب اونه ولی گروه فایل و دیگران دیگه چی میگن این وسط!؟

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

تغییر مجوز ها

با دستور ls میتونیم مجوز هارو ببینیم ، چطور میتونیم تغییرشون بدیم ؟

خب به سادگی ،‌با دستور chmod به راحتی میتونیم تغییرشون بدیم.

شکل دستور chmod به صورت زیر هست :

 chmod MODE Filename[s]

,Mode میتونه یکی از اعداد از ۰۰۰ تا ۷۷۷ باشه ، البته نه همه اعدادش ،‌اعدادی که از ترکیب 1 ،‌ 2 و 4 تولید میشن. که شاید بعدا توی یه پست جداگونه به طور مفصل درمورد اعداد باینری و مبناهای ۸ و ۱۶ صحبت کردم ولی فعلا اینجا از یه حالت دیگه از Mode استفاده میکنیم که ساده تر هست.

فرمت کلی Mode به صورت زیر هست

[ugoa][-+=][rwx]

u : user
g : group
o : others
a : all users

= قراردادن مجوز دقیقا برابر با همین mode
+ اضافه کردن مجوز
- گرفتن این مجوز

r : read
w : write
x : execute ( or search for directories)

پس برای اضافه کردن مجوز خواندن یک فایل به کاربر صاحب اون ، دستور زیر رو وارد میکنیم

chmod u+r filename

یا برای گرفتن مجوز اجرایی از همه کاربران دستور زیر رو وارد میکنیم

chmod a-x filename
یا
chmod ugo-x filename

البته chmod مجوز ها دیگه ایی هم داره که اینجا به طور خلاصه معرفیش کردیم.

تغییر صاحب فایل

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

chown NewUSer[:NewGroup] Filename[s]

به عنوان مثال اگر بخواید فقط کاربر صاحب فایل رو تتغییر بدید کافیه دستور زیر رو وارد کنید

chown newUser filename

یا برای تغییر فقط گروه صاحب فایل دستور زیر رو وارد کنید

chown :newGroup filename

و در نهایت برای تغییر کاربر و گروه همزمان

chown newUser:newGroup filename

نکته : به جای filename میتونید لیستی از فایل هارو قرار بدید که با فاصله از همدیگه جدا شده اند.
اگر مجوز کاربری غیر از خودتون رو بخواید تغییر بدید ،‌ نیاز به مجوز کاربر ریشه دارید ،‌که میتونید از sudo استفاده کنید.

امیدوارم براتون مفید باشه ،‌اگر سوال یا پیشنهادی دارید توی نظرات بگید ، خوشحال میشم.

منتشرشده توسط

Hamid Reza

یه لنوکس کار که به الکترونیک و برنامه نویسی علاقه داره

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *