از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
لیست های کنترل دسترسی در اوبونتو
سرفصلهای مطلب
حساب های کاربری با مجموعه خاصی از امتیازات و حقوق از پیش تعریف شده برای فایل ها و سرویس های سیستم ایجاد می شوند. از سوی دیگر، گروه هایی برای به اشتراک گذاری فایل ها و پوشه ها بین کاربران وجود دارند. به طور معمول، هنگامی که حساب های کاربری ایجاد می شوند، می توان آنها را به گروه های جایگزین اختصاص داد. با این حال، مواقعی وجود دارد که ممکن است نخواهید یک کاربر خاص را به یک گروه خاص اختصاص دهید، اما در همان زمان، ممکن است لازم باشد فایل ها/پوشه ها را با آن کاربر خاص به اشتراک بگذارید. اینجاست که لیست های کنترل دسترسی (ACL) به تصویر می آیند. در این آموزش با لیست های کنترل دسترسی در اوبونتو آشنا می شویم.
لیست های کنترل دسترسی (ACL)
لیست های کنترل دسترسی (ACL) به ما اجازه می دهد تا کنترل دسترسی را به دقت تنظیم کنیم. به عبارت دیگر، فرض کنید که کاربر SARA نیاز به دسترسی به یک پوشه واحد متعلق به KALYANI دارد. از نظر فنی، ما میتوانیم SARA را به گروه KALYANI اختصاص دهیم، اما این بدان معناست که سارا به بیش از نیاز خود دسترسی خواهد داشت، و فرض کنید که KALYANI فایلهای حساسی دارد که نمیخواهد سارا بخواند، بنویسد یا اجرا کند. اینجاست که لیستهای کنترل دسترسی یا ACL در تصویر ظاهر میشوند. در تئوری، ما میتوانیم مجوزها را به هم بزنیم، اما ACLها به ما اجازه میدهند تا دسترسیهای متفاوتی را به کاربران مختلف بدهیم و همچنین بدون نیاز به درهمکاری با مجوزهای اصلی اصلی فایل یا پوشه، دسترسی را به کاربران مختلف بدهیم.
مشاهده مجوزهای فعلی
ما از دستور getfacl (دریافت لیست کنترل دسترسی به فایل) برای مشاهده مجوزهای فعلی ACL استفاده می کنیم.
فرض کنید من یک پوشه به نام Secret با دو زیر شاخه و 5 فایل ایجاد می کنم. فرض کنید که من می خواهم مجوزهای ACL را مشاهده کنم روی پوشه مخفی
این بدان معناست که صاحب فایل ها و پوشه ها، kalyani، متعلق به گروه kalyani، مجوزهای خواندن، نوشتن و اجرا را دارد. با این حال، بقیه هیچ اجازه ای ندارند.
تخصیص مجوزهای تنظیم دقیق به کاربر
تنظیم دقیق مجوزها با ACL با استفاده از دستور setfacl انجام می شود. سوئیچ -m، به ویژه، برای تغییر مجوزها استفاده می شود.
u نشان می دهد که تغییر برای یک کاربر است و نه یک گروه. بعد از کولون، نام کاربری که مجوز برای آن اعطا شده و همچنین مجوز اعطا شده مینویسد. مجوزها مانند مجوزهای موجود برای chmod هستند: خواندن، نوشتن و اجرا. در نهایت، نام فایلی که مجوز برای آن اعمال شده است را می نویسیم.
برای مثال، فرض کنید که من میخواهم به کاربر SARA دسترسی کامل به این پوشه مخفی را بدهم، سپس مینویسم:
حال، اگر ما به عنوان SARA وارد شویم، باید دسترسی به پوشه “secret” را بخوانیم، بنویسیم و اجرا کنیم. حالا، توجه داشته باشید، من یک مجوز 770 را برای فهرست اولیه تنظیم کردم. این مجوز حفظ شد، اما با استفاده از لیستهای کنترل دسترسی، یک استثنا به قانون اضافه شد. اگر پوشه دیگری به نام “kali” با مجوز 770 متعلق به kalyani داشتم، کاربر SARA نمی توانست آن را لمس کند. در واقع میگوید «اجازه رد شد».
علاوه بر این، نکته ای که باید به آن توجه کنید این است که هنگامی که فایل به عنوان ACL اصلاح می شود، هنگامی که آن را لیست می کنید یک علامت مثبت در کنار آن وجود دارد. در این حالت، همانطور که می بینید، برای پوشه ای به نام secret می گوید drwxrwx—+. علامت مثبت نشان می دهد که با ACL ها اصلاح شده است.
پس از تنظیم ACL ها، یک ماسک نیز ایجاد می شود. ماسک حداکثر مجوزی است که یک کاربر یا گروه ACL به طور بالقوه می تواند داشته باشد روی یک دایرکتوری یا یک فایل
تخصیص مجوزهای تنظیم شده به گروه ها
درست مانند اعطای مجوز ویژه به کاربران، میتوانیم به گروهها مجوز ویژه نیز اختصاص دهیم. این بدان معنی است که ما می توانیم مجوزهای پایه خود را همانطور که هست حفظ کنیم و با استفاده از ACL به یک گروه خاص مجوز اضافی اختصاص دهیم.
سابق:
در این حالت به گروه JOHN اجازه خواندن پوشه مخفی را می دهیم. این بدان معنی است که همه اعضای گروه JOHN مجوز خواندن پوشه مخفی و فقط پوشه مخفی را خواهند داشت. همه چیز دیگر زیر قفل و کلید خواهد بود.
تکلیف بازگشتی
پوشه مخفی با 3 فایل به طور مستقیم در آن و 2 زیرمجموعه که هر کدام دارای یک فایل در آن است طراحی شده است.
وقتی مجوزها را به کاربر SARA و گروه JOHN اختصاص دادیم، این کار را به صورت بازگشتی انجام ندادیم، بنابراین اجازه دهید مجوزهای ACL زیرمجموعههای موجود را بررسی کنیم (پس از اختصاص مجوز به فهرست مخفی).
همانطور که می بینید، مجوزهای ACL فقط برای پوشه مخفی اعمال می شود و نه زیر شاخه ها. منظور این است که کاربر SARA و گروه JOHN مجوزهای داده شده را ندارند روی دایرکتوری های فرعی! در این حالت، اگر بخواهیم به کل دایرکتوری (از جمله زیر شاخه ها) مجوز بدهیم، باید یک تخصیص بازگشتی انجام دهیم. برای این کار از سوئیچ -R استفاده می کنیم.
سابق:
حذف مجوزهای تنظیم شده
همچنین ممکن است بخواهید مجوزهای داده شده را لغو کنید، و انجام این کار به همان سادگی است که به آنها داده می شود. شما از سوئیچ -x به جای سوئیچ -m برای لغو مجوزها استفاده می کنید.
برای حذف یک ورودی خاص:
setfacl -ایکس g:group_name نام فایل
در این صورت می نوشتم:
برای حذف تمام ورودی ها در یک شات:
مثلا:
با این حال، این حقوق را حذف نمی کند روی دایرکتوری های فرعی برای حذف حقوق از دایرکتوری های فرعی، باید از Recursion استفاده کنید.
خلاصه
همه چیزهایی که یاد گرفتیم به این خلاصه می شود:
برای مشاهده مجوزهای ACL:
برای تنظیم مجوزهای ACL:
گزینه ها:
-m، -modify اصلاح ACL
-x، -حذف حذف ورودی ACL
-b، –remove-all تمام ورودی های ACL را حذف کنید
انتساب بازگشتی -R
ورودی:
u:username: مجوز برای کاربران
g:group_name: مجوز برای گروه ها
اگرچه chmod برای اعطای مجوز به فایلها و پوشهها وجود دارد، اما انتخابی نیست. نمی تواند به کاربران مختلف امتیازات متفاوتی بدهد. علاوه بر این، مواقعی وجود دارد که فرد نمیخواهد افراد تصادفی را به گروهها اضافه کند. ACL یا Access Control Lists فقط برای این مناسبت اختراع شد. می تواند به کاربران یا گروه های خاصی اجازه دسترسی به فایل ها و/یا پوشه های خاص را بدهد. در این آموزش یاد گرفتیم که چگونه به کاربران و گروه ها مجوزهای ویژه بدهیم، به صورت بازگشتی مجوزها را اختصاص دهیم و مجوزهای گفته شده را لغو کنیم. پس بروید و مجوزها را تنظیم کنید روی فایل ها و پوشه ها از اینجا روی به پیش!
کد نویسی مبارک!
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-01-01 02:08:12