High-level overview of how LSM is integrated into the Linux kernel


  • در قسمت user space و در بخش process فرض کنید که کاربر دستور ls را برای دایکتوری root/ اجرا کرده است.
  • با اجرای دستور ls درخواست‌ها تحت عنوان system call به قسمت kernel space فرستاده می‌شود.
  • در صورتی که خطاهای منطقی وجود داشته باشد ،‌ به عنوان مثال cd در داخل یک فایل ، آن‌گاه خطای error از بخش error checks به سمت کاربر فرستاده می‌شود.
  • در صورتی که مشکلی یا خطای منطقی وجود نداشته باشد ، درخواست به سمت DAC فرستاده می‌شود
  • در بخش DAC بررسی می‌شود آیا process که در این جا دستور ls است ، دسترسی یا پرمیشن به مقصد (که دایرکتوری root/ است) دارد یا خیر. در صورتی که دسترسی وجود نداشته باشد خطایی برای کاربر ارسال می‌شود.
  • در صورتی که مشکلی در بخش DAC وجود نداشته باشد درخواست به سمت بخش LSM Hook ارسال می‌شود.
  • LSM نوعی Interface برای اجرای افزونه‌های امنیتی‌ای مثل SELinux و … است.
  • اگر این دسته از افزونه‌ها برای کرنل در نظر گرفته شده باشد ، آنگاه افزونه اجرا می‌شود.
  • حال اگر مشکلی از بابت خط‌مشی‌های افزونه و دستوری‌ (پروسه) کاربر اجرا کرده است ، وجود نداشته باشد ، آنگاه نتایج به سمت کاربر ارسال می‌شود. در غیر این صورت پیامی مبنی بر خطا برای کاربر ارسال می‌شود.