مجوزهای دسترسی فایل سیستم‌های ext در لینوکس

مهم نیست چه مدت با لینوکس کار کرده باشید، کارشناس امور امنیتی باشید یا یک هکر آزاد اندیش، مجوزهای دسترسی پدیده‌ای است که  برای هر کاربر لینوکس جذاب است. با این مقدمه، امروز در نظر دارم ۱۳ مجوز دسترسی جالبی که توسط فایل سیستم‌های ext2‏، ext3 و ext4 به کار می‌روند را معرفی کنم.

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

همانطور که می‌دانید، مجوزهای دسترسی عمومی لینوکس بر مبنای دو دستور chmod و chown استوار شده‌اند و اطلاع از اآن‌ها با کمک دستور زیر میسر است:


ls -l

دستور chmod عموما برای تعیین سه سطح دسترسی «خواندن»، «نوشتن» و «اجرا کردن» به کار می‌رود ولی سطوح دسترسی دیگری وجود دارد که توسط فایل‌ سیستم‌های ext2 به بعد معرفی شده‌اند امکان مدیریت بهتر سیستم را فراهم می‌آورند، برای آشنایی با این سطوح دسترسی دو دستور ارائه شده‌اند:

  • دستور نمایش خصیصه‌ها (lsattr)
  • دستور تغییر خصیصه‌ها (chattr)

برای اطلاع از خصیصه‌های یک دایرکتوری یا فایل به دستور lsattr را به این شکل می‌توان به خدمت گرفت:


lsattr /var

خروجی این دستور بسیار شبیه به خروجی دستور ls است. با این تفاوت که این ۱۳ خصیصه را معرفی می‌کند:

خصیصهشرحقابل اعمال توسط chattr
Aرکورد atime فایلی که خصیصه A را داشته باشد، تغییر نخواهد کرد. این باعث کاهش بار عملیات ورودی/خروجی دیسک در لپ‌تا‌پ‌ها و دیسک‌های فلش می‌شود.بله
aفایلی که خصیصه‌ی a را داشته باشد، فقط در حالت append قابل نوشته شدن است.بله، فقط توسط کاربر ریشه
cفایلی که خصیصه‌ی c را داشته باشد به صورت خودکار توسط کرنل فشرده‌ می‌شود. خواندن این فایل داده‌های فشرده نشده را نمایش می‌دهد. داده‌های نوشته شده روی این فایل پیش از ذخیره شدن بر روی دیسک، فشرده می‌شود.بله، توضیحات را بخوانید
Dوقتی یک دایرکتوری با خصیصه‌ی D تغییر کند، تغییرات به صورت همزمان روی دیسک نوشته می‌شود، این رفتار معادل این است که ماونت آپشن dirsync بر روی فایل‌ها اعمال شود.بله
dفایلی که خصیصه d را داشته باشد، موقع پشتیبان‌گیری با برنامه dump نادیده گرفته خواهد شد.بله
Eخصیصه E توسط پچ‌های آزمایشی فشرده‌سازی استفاده می‌شوند برای اینکه اعلان کنند فایل فشرده‌ شده‌ خطایی در فشرده‌سازی دارد.خیر
eاین خصیصه بیانگر این است که فایل برای نگاشت بلوک‌های دیسک از extents استفاده می‌کند.خیر
Iخصیصه I توسط کد htree برای بیان اینکه یک دایرکتوری در حال ایندکس شدن با درخت‌های هش است، به کار می‌رود.خیر
iوقتی فایلی خصیصه i را داشته باشد، قابل تغییر نیست: نمی‌توان آن را حذف کرد، تغییر نام داد یا لینکی به آن ایجاد کرد و هیچ داده‌ای بر روی آن نمی‌توان نوشت.بله، فقط توسط کاربر ریشه
jفایل با خصیصه j باعث می‌شود اگر فایل سیستم با آپشن data=ordered یا data=writeback ماونت شده باشند، همه‌ی داده‌ها پیش از نوشته شدن بر روی خود فایل بر روی ژورنال (ext3) نوشته شوند، اگر فایل سیستم قبلا با آپشن data=journal ماونت شده باشد این مکانیزم به صورت پیش‌فرض اتفاق می‌افتد و این خصیصه بی‌اثر خواهد بود.بله، فقط توسط کاربر ریشه
sوقتی فایلی با خصیصه s حذف شود، بلوک‌های آن صفر می‌شود و بر روی دیسک نوشته می‌شود. این خصیصه برای حذف ایمن فایل‌ها بدون امکان بازگشت مفید است.بله، توضیحات را بخوانید
Sوقتی فایلی با خصیصه S تغییر کند، تغییرات به صورت همزمان روی دیسک نوشته می‌شوند، این معادل آپشن ماونت sync است که به فایل‌ها اعمال می‌شود.بله
Tوجود خصیصه T بر یک دایرکتوری، یک راهنمایی به تخصیصگر بلوک است که در ext3 و ext4 استفاده می‌شود تا اعلام کند زیردایرکتوری‌ها این دایرکتوری بهم مرتبط نیستند و بنابراین، باید برای دسترسی سریعتر پخش شوند. به عنوان مثال، این ایده‌ی خیلی خوبی است که خصیصه T را به دایرکتوری ‎/home اعمال کنید، تا زیردایرکتوری‌های ‎/home/john و ‎/home/mary در بلوک‌های جداگانه‌ای ذخیره شوند. در صورت عدم وجود این خصیصه، تخصیصگر بلوک Orlov سعی خواهد کرد زیردایرکتوری‌ها را تا حد امکان در بلوک‌های نزدیک بهم قرار دهد.بله
tفایلی با خصیصه t بخش بلوک ناقص (partial block gragment) را در انتهای خود جایی که به فایل دیگری پیوسته باشد، ندارد (این برای فایل سیستم‌هایی است که از پیوستگی-انتها (tail-merging) پشتیبانی می‌کنند). این برای برنامه‌هایی مثل LILO لازم است که مستقیما فایل سیستم را می‌خوانند و پیوستگی-انتها را متوجه نمی‌شوند. نکته: تا این زمان، فایل سیستم‌های ext3 و ext2 هنوز (بجز در پچ‌های آزمایشی) از پیوستگی-انتها پشتیبانی نمی‌کنند.بله
uوقتی فایلی با خصیصه u حذف می‌شود، محتویاتش باقی می‌ماند. این خصیصه اجازه می‌دهد که کاربر بتواند فایل‌هایش را پس از حذف شدن برگرداند.بله، توضیحات را بخوانید
Xخصیصه X توسط پچ‌های فشرده‌سازی آزمایشی استفاده می‌شود تا بیان کند که محتویات خام یک فایل فشرده‌شده به طور مستقیم می‌تواند خوانده شود.خیر
Zخصیصه Z توسط پچ‌های فشرده‌سازی آزمایشی استفاده می‌شود تا بیان کند که فایل فشرده‌شده اصطلاحا «کثیف» است.خیر

توضیحات:

  • خصیصه‌های c‏، s و u در فایل‌ سیستم‌های ext2 و ext3 در نسخه‌‌های فعلی کرنل لینوکس فعلی، پیاده‌سازی نشده‌اند. این خصیصه‌ها در نسخه‌های آتی فایل سیستم‌های ext2 و ext3 پیاده‌سازی خواهند شد.
  • آپشن j فقط زمانی مفید است که فایل سیستم به حالت ext3 ماونت شده باشد.
  • آپشن D فقط بر روی کرنل‌های لینوکس ۲.۵.۱۹ و بعد از آن مفید است.
  • حدف کردن و یا اعمال کردن خصیصه‌های a‏، i  فقط توسط کاربر ریشه یا پروسه‌ای که خصیصه CAP_LINUX_IMMUTABLE را داشته باشد امکان پذیر است.
  • حذف کردن و یا اعمال خصیصه‌ی j نیز توسط کاربر ریشه یا پروسه‌ای که خصیصه CAP_SYS_RESOURCE را داشته باشدمیسر است.

اعمال یا حذف کردن خصیصه‌های قابل اعمال با chattr بسیار ساده است. بعنوان مثال برای تغییر ناپذیر کردن دستور ls کافی است وارد کنیم:


chattr +i /bin/ls

حذف کردن این خصیصه نیز به راحتی عوض کردن علامت + با علامت – در دستور بالاست:


chattr -i /bin/ls

خب خسته نباشید. این مطلب هم به پایان رسید. نظراتتون رو همین پایین مطرح کنید. :)

منابعی که من استفاده کردم عبارتند است:

  • کتاب ubuntu linux toolbox تالیف آقایان Christopher Negus و François Caen از انتشارات Wiely

Thanks for passing by: ↓



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

11 پاسخ به مجوزهای دسترسی فایل سیستم‌های ext در لینوکس

  1. شاهین آزاد می‌گوید:

    اولا ممنونم علی‌، هم بابت اون مطلبت توی لینوکس ریویو‌، هم بابت مشاوره حضوریت‌، و هم بابت این مطلبت که من رو با خیلی از نادانسته‌هام آشنا کرد;-)

    با chattr موقعی که می‌خواستم ‎/etc/resolv.conf رو کاری کنم که سیستم بی‌خیال نوشتنش شه آشنا شده بودم و خیلی اتفاقی نحوه‌ی اعمال کردن مشخصاتش رو یاد گرفتم‌! ولی نمی‌دونستم که چطور با وجود این که توسط کاربر روت قابل نوشتنه‌، نمی‌شه روش نوشت‌. (‌توی مطلبی که تو وبلاگم هست به وضوح سوتیش مشهوده ;-)) الان کلا روشن شدم‌. دستت مرسی‌!

    [پاسخ]

    ali پاسخ در تاريخ اسفند ۱۳ام, ۱۳۹۰ ۱۲:۴۷ ق٫ظ:

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

    [پاسخ]

  2. چالیست می‌گوید:

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

    [پاسخ]

    ali پاسخ در تاريخ اسفند ۲۲ام, ۱۳۹۰ ۱۱:۲۸ ق٫ظ:

    ممنون چالیست جان که سر زدی؛
    اضافه کردم به ستون سمت چپ >>
    پایین قسمت rss.

    هدف ما، رضایت شماست.
    هر روز بهتر از دیروز :)

    [پاسخ]

  3. علی.ف می‌گوید:

    با سلام و تشکر از مطلبتان.
    لطفاً در صورت امکان پیوند به مقاله مذکوردر لینوکس ریویو رو هم قرار بدهید.

    [پاسخ]

    ali پاسخ در تاريخ اردیبهشت ۲۳ام, ۱۳۹۱ ۱۰:۳۱ ب٫ظ:

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

    [پاسخ]

  4. حسین می‌گوید:

    مرسی وبلاگ مفید و خوبی داری

    [پاسخ]

    ali پاسخ در تاريخ مرداد ۲۴ام, ۱۳۹۱ ۴:۴۰ ب٫ظ:

    لطف داری حسین جان. :)

    [پاسخ]

  5. فرید می‌گوید:

    مفید بود.
    موفق باشی.

    [پاسخ]

  6. بهنام می‌گوید:

    توضیحات بسیار عالی بود!

    [پاسخ]

  7. بازتاب: سطوح دسترسی اضافی (یک): Sticky bit : Gnu Tips

پاسخ دهید

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

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>