09982292579
info@mehraeen.ac.ir
فارسی پرچم
فارسی
یک زبان را انتخاب کنید
فارسی پرچم
فارسی
0
دسته ها
خانه تقویم‌آموزشی مدرس وبلاگ چارت‌‌دروس تماس‌با‌ما درباره‌ما انجمن‌ها
کارگاه سیستم عامل

جلسه 9 مجوزهای فایل ها و نحوه کار با فرامین chmod ،umask ،chattr

خلاصه نکات کلیدی: مجوزها: دسترسی خواندن (r)، نوشتن (w)، و اجرا (x) برای سه دسته کاربر: مالک (u)، گروه (g)، و دیگران (o). نمایش مجوزها: رشته ۱۰ کاراکتری (نوع فایل + rwx برای ugo). chmod: تغییر مجوزها با استفاده از حالت نمادین (مثلاً u+x) یا عددی (مثلاً 755). umask: تعیین مجوزهای پیش‌فرض حذف شده هنگام ایجاد فایل/دایرکتوری جدید. مقدار umask از مجوزهای حداکثر (666 برای فایل، 777 برای دایرکتوری) کم می‌شود. chattr: تنظیم ویژگی‌های پیشرفته فایل مانند immutable (+i) و append-only (+a) که فراتر از مجوزهای استاندارد عمل می‌کنند. lsattr: نمایش ویژگی‌های پیشرفته فایل.

 مفاهیم پایه مجوزهای فایل

۱. چرا مجوزهای فایل مهم هستند؟


  • امنیت: جلوگیری از دسترسی غیرمجاز به اطلاعات حساس.

  • مدیریت دسترسی: تعیین اینکه چه کسی (مالک، گروه، دیگران) می‌تواند چه عملیاتی (خواندن، نوشتن، اجرا) را روی فایل انجام دهد.

  • پایداری سیستم: اطمینان از اینکه فایل‌های سیستمی مهم به اشتباه تغییر نکرده یا حذف نمی‌شوند.

۲. انواع دسترسی:


  • خواندن (Read - r): امکان مشاهده محتوای فایل یا لیست کردن فایل‌های درون دایرکتوری.

  • نوشتن (Write - w): امکان تغییر محتوای فایل یا ایجاد/حذف فایل‌ها در دایرکتوری.

  • اجرا (Execute - x): امکان اجرای فایل (اگر یک اسکریپت یا برنامه باشد) یا ورود به دایرکتوری.

۳. انواع کاربران:


  • مالک (Owner - u): کاربری که فایل را ایجاد کرده است.

  • گروه (Group - g): گروهی از کاربران که به طور خاص برای دسترسی به این فایل تعریف شده‌اند.

  • دیگران (Others - o): همه کاربرانی که نه مالک هستند و نه در گروه تعریف شده‌اند.

۴. نمایش مجوزها:

مجوزهای فایل‌ها معمولاً با استفاده از یک رشته ۱۰ کاراکتری نمایش داده می‌شوند.


  • کاراکتر اول: نوع فایل ( - برای فایل عادی، d برای دایرکتوری، l برای لینک نمادین و غیره).

  • سه کاراکتر بعدی: مجوزهای مالک (rwx).

  • سه کاراکتر بعدی: مجوزهای گروه (rwx).

  • سه کاراکتر آخر: مجوزهای دیگران (rwx).

مثال:

-rwxr-xr--


  • -: فایل عادی است.

  • rwx: مالک می‌تواند بخواند، بنویسد و اجرا کند.

  • r-x: گروه می‌تواند بخواند و اجرا کند، اما نمی‌تواند بنویسد.

  • r--: دیگران فقط می‌توانند بخوانند.


بخش دوم: دستور chmod (تغییر مجوزها)

دستور chmod برای تغییر مجوزهای فایل‌ها و دایرکتوری‌ها استفاده می‌شود. دو روش اصلی برای استفاده از آن وجود دارد:

۱. حالت نمادین (Symbolic Mode):

با استفاده از حروف u (owner), g (group), o (others), a (all) و عملگرهای + (اضافه کردن)، - (حذف کردن)، = (تنظیم دقیق) همراه با مجوزهای r, w, x.

مثال‌ها:


  • chmod u+x file.txt: به مالک اجازه اجرا می‌دهد.

  • chmod g-w file.txt: مجوز نوشتن را از گروه حذف می‌کند.

  • chmod o=r file.txt: مجوزهای دیگران را فقط به خواندن محدود می‌کند.

  • chmod a+r directory/: مجوز خواندن را برای همه اضافه می‌کند.

  • chmod ug+wx file.txt: مجوزهای نوشتن و اجرا را برای مالک و گروه اضافه می‌کند.

۲. حالت عددی (Octal Mode):

هر مجوز (r, w, x) یک مقدار عددی دارد:


  • r = 4

  • w = 2

  • x = 1

با جمع این مقادیر برای هر دسته از کاربران (مالک، گروه، دیگران) یک عدد سه‌رقمی به دست می‌آید.


  • rwx = 4 + 2 + 1 = 7

  • rw- = 4 + 2 = 6

  • r-x = 4 + 1 = 5

  • r-- = 4

مثال‌ها:


  • chmod 755 script.sh: مالک (rwx=7)، گروه (r-x=5)، دیگران (r-x=5). این مجوز رایج برای اسکریپت‌های اجرایی است.

  • chmod 644 data.txt: مالک (rw=6)، گروه (r=4)، دیگران (r=4). این مجوز رایج برای فایل‌های داده است.

  • chmod 700 private_dir/: مالک (rwx=7)، گروه (—=0)، دیگران (—=0). دسترسی کامل فقط برای مالک.

نکته: برای تغییر مجوزهای یک دایرکتوری و تمام محتویات آن به صورت بازگشتی، از آپشن -R استفاده کنید: chmod -R 755 my_project/.


بخش سوم: دستور umask (ماسک ایجاد مجوز)

دستور umask تعیین می‌کند که هنگام ایجاد یک فایل یا دایرکتوری جدید، کدام مجوزها به طور پیش‌فرض حذف شوند.


  • حداکثر مجوزهای ممکن برای فایل‌ها: 666 (rw-rw-rw-) - فایل‌ها قابلیت اجرا ندارند مگر اینکه به طور صریح اضافه شود.

  • حداکثر مجوزهای ممکن برای دایرکتوری‌ها: 777 (rwxrwxrwx).

umask به صورت عددی عمل می‌کند و مقادیر آن از حداکثر مجوزهای ممکن کم می‌شود.

مثال:



  • اگر umask برابر 022 باشد:




  • برای فایل جدید: 666 - 022 = 644 (rw-r--r--). یعنی مالک خواندن/نوشتن، گروه خواندن، دیگران خواندن.




  • برای دایرکتوری جدید: 777 - 022 = 755 (rwxr-xr-x). یعنی مالک خواندن/نوشتن/اجرا، گروه خواندن/اجرا، دیگران خواندن/اجرا.




  • اگر umask برابر 002 باشد:




  • برای فایل جدید: 666 - 002 = 664 (rw-rw-r--).




  • برای دایرکتوری جدید: 777 - 002 = 775 (rwxrwxr-x).



برای مشاهده مقدار umask فعلی، کافیست دستور umask را بدون آرگومان اجرا کنید. برای تغییر موقت آن در طول یک نشست ترمینال، از umask <مقدار عددی> استفاده کنید. تغییرات دائمی معمولاً در فایل‌های تنظیمات پروفایل کاربر (مانند .bashrc یا .profile) انجام می‌شود.


بخش چهارم: دستور chattr (ویژگی‌های پیشرفته فایل)

دستور chattr (change attribute) امکان تنظیم ویژگی‌های پیشرفته‌تری را برای فایل‌ها فراهم می‌کند که فراتر از مجوزهای دسترسی استاندارد هستند. این ویژگی‌ها می‌توانند از حذف تصادفی فایل‌ها جلوگیری کرده یا دسترسی نوشتن را حتی برای کاربر root محدود کنند.

برخی ویژگی‌های مهم:


  • i (immutable): فایل را غیرقابل تغییر می‌کند. حتی کاربر root هم نمی‌تواند آن را حذف، تغییر نام دهد، ویرایش کند یا لینک جدیدی به آن ایجاد کند. برای تغییر این ویژگی، ابتدا باید آن را با chattr -i حذف کنید.

  • a (append-only): به فایل فقط می‌توان اضافه کرد. امکان بازنویسی یا حذف محتوای موجود وجود ندارد. این ویژگی برای فایل‌های لاگ بسیار مفید است.

مثال‌ها:


  • sudo chattr +i important_config.conf: فایل important_config.conf را غیرقابل تغییر می‌کند.

  • sudo chattr -i important_config.conf: ویژگی immutable را از فایل حذف می‌کند.

  • sudo chattr +a access.log: به فایل access.log فقط می‌توان داده اضافه کرد.

نکته: برای استفاده از chattr معمولاً نیاز به دسترسی root (sudo) دارید. برای مشاهده ویژگی‌های تنظیم شده برای یک فایل، از دستور lsattr استفاده کنید.


خلاصه نکات کلیدی:


  • مجوزها: دسترسی خواندن (r)، نوشتن (w)، و اجرا (x) برای سه دسته کاربر: مالک (u)، گروه (g)، و دیگران (o).

  • نمایش مجوزها: رشته ۱۰ کاراکتری (نوع فایل + rwx برای ugo).

  • chmod: تغییر مجوزها با استفاده از حالت نمادین (مثلاً u+x) یا عددی (مثلاً 755).

  • umask: تعیین مجوزهای پیش‌فرض حذف شده هنگام ایجاد فایل/دایرکتوری جدید. مقدار umask از مجوزهای حداکثر (666 برای فایل، 777 برای دایرکتوری) کم می‌شود.

  • chattr: تنظیم ویژگی‌های پیشرفته فایل مانند immutable (+i) و append-only (+a) که فراتر از مجوزهای استاندارد عمل می‌کنند.

  • lsattr: نمایش ویژگی‌های پیشرفته فایل.


تمرین پایان فصل:

۱. یک فایل متنی به نام my_notes.txt ایجاد کنید. با استفاده از دستور ls -l مجوزهای پیش‌فرض آن را بررسی کنید. مقدار umask سیستم خود را پیدا کنید و توضیح دهید چرا این مجوزها برای فایل تنظیم شده‌اند.

۲. فرض کنید فایل my_notes.txt متعلق به شماست. می‌خواهید کاری کنید که:


  • شما بتوانید آن را بخوانید، بنویسید و اجرا کنید (اگرچه فایل متنی است).

  • اعضای گروه شما بتوانند آن را بخوانند و اجرا کنند.

  • دیگران فقط بتوانند آن را بخوانند.

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

۳. یک دایرکتوری به نام project_files ایجاد کنید. می‌خواهید فقط شما (به عنوان مالک) بتوانید وارد این دایرکتوری شوید، فایل‌ها را ببینید، ایجاد کنید و حذف کنید. هیچ‌کس دیگری نباید بتواند به آن دسترسی داشته باشد. مجوزهای لازم را با chmod تنظیم کنید.

۴. فایل important_document.docx را دارید. می‌خواهید مطمئن شوید که هیچ‌کس، حتی خودتان به اشتباه، آن را حذف یا ویرایش نمی‌کند تا زمانی که خودتان این ویژگی را غیرفعال کنید. از دستور chattr برای این منظور استفاده کنید. سپس سعی کنید فایل را حذف کنید (باید با خطا مواجه شوید). در نهایت، ویژگی را غیرفعال کنید.
























































۵. یک فایل لاگ به نام system.log ایجاد کنید. می‌خواهید مطمئن شوید که به محتوای فعلی آن دست نمی‌خورد، اما برنامه‌ها می‌توانند به انتهای آن داده اضافه کنند. از chattr برای تنظیم این ویژگی استفاده کنید.

دروس متنی

#1

جلسه 1 نرم افزارهای متن باز )Source Open ،)معرفی سیستم عامل لینوکس،

#2

جلسه 2معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و

#3

جلسه 3 معرفی انواع محیط های کاربری گرافیکی و خط فرمان لینوکس و نحوه اتصال و کار با آنها

#4

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

#5

جلسه 5 معرفی محیط های خط فرمان لینوکس، نحوه نامگذاری محیطهای خط فرمان،

#6

جلسه 6آشنایی با نرمافزارهای ویرایشگر متن مانند: vim ،nano و ... کار با فرامین پردازش متن

#7

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

#8

جلسه 8 مدیریت پراسس ها و انواع پراسس ها در لینوکس،

#9

جلسه 9 مجوزهای فایل ها و نحوه کار با فرامین chmod ،umask ،chattr

#10

جلسه 10فرامین ایجاد، فرمت و مدیریت پارتیشن، مانند: df ،du ،mkfs ،mount

#11

جلسه 11مدیریت کاربران و فرامین groupadd ،passwd ،useradd

#12

جلسه 12 فرامین پشتیبان گیری و فشرده سازی مانند: cpio ،tar ،zip ،gzip ،bzip و ...

#13

جلسه 13 نحوه پیکربندی کارت شبکه در لینوکس و کار با فرمان ifconfig ،ping

مشاهده دروس کامل بررسی صفحه یادگیری دوره
درس متنی 9/13
در حال مشاهده
جلسه 9 مجوزهای فایل ها و نحوه کار با فرامین chmod ،umask ،chattr