How to use Access control list (ACL) in linux

طرح سناریو ۱

  • فرض کنید یک پرونده در اختیار دارید که متعلق به کاربر و گروه root است.
  • همچنین فرض کنید پرمیشن این پرونده به صورت 744 در نظر گرفته شده است.
  • یعنی برای گروه other و گروه root تنها پرمیشن خواندن در نظر گرفته شده است.
  • حال فرض کنید کاربری با نام user1 در اختیار دارید که عضو گروه root نیست.
  • همچنین می‌خواهید فقط و فقط به کاربر user1 اجازه‌ی نوشتن به فقط و فقط پرونده‌ی مد نظر را بدهید.
  • در این شرایط و برای حل این مشکل طبیعتاً نمی‌توان از مباحث پایه‌ای پرمیشن‌ها استفاده نمود لذا این سناریو تنها با ACL قابل حل است.

نصب بسته‌ی مربوط به ACL

  • نام بسته‌ای که ACL را ارائه می‌کند ، X می‌باشد. به منظور نصب به صورت زیر عمل نمایید.

  • به منظور استفاده از ACL از ابزار getfacl باید استفاده نمود.

حل سناریو ۱

  • ابتدا یک کاربر با نام user1 ایجاد نمایید.

  • یک پرونده با محتوایی دلخواه ایجاد نمایید.

  • به منظور بررسی پرمیشن‌ها و ACL پرونده‌ی file.txt به صورت زیر عمل نمایید.

  • حال به منظور تخصیص دسترسی نوشتن به کاربر user1 تنها و تنها برای پرونده‌ی root/file.txt/ به شکل زیر عمل نمایید.

  • حال در صورتی که از پرونده‌ی file.txt یک ls بگیرید ، خواهید دید که یک + به انتهای پرمیشن آن اضافه شده است.

  • حال اگر وارد کاربر user1 شوید ، می‌توانید داخل پرونده‌ی home/file.txt/ بنویسید.

  • در صورتی که تمام موارد به درستی انجام شده باشد ، نباید خطایی مبنی بر Permission denied صادر گردد.
  • نکته : طبیعتا کاربر باید نسبت به مسیری که درون آن پرونده قرار گرفته است ، دید داشته باشد. یعنی در شرایط عادی (بدون تنظیم ACL) کاربر باید بتواند home/ یا هر مسیر فرضی دیگر را ببیند. (ls بگیرد)